Skip to content

Commit 0741ca5

Browse files
authored
Merge pull request #1063 from topcoder-platform/PM-1154_update-check-for-payout-status
PM-1154 - update check for payout status
2 parents d04d2db + acc3ecf commit 0741ca5

File tree

5 files changed

+11
-108
lines changed

5 files changed

+11
-108
lines changed

src/apps/wallet-admin/src/home/tabs/payments/PaymentsTab.tsx

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,11 @@ import { Collapsible, ConfirmModal, LoadingCircles } from '~/libs/ui'
88
import { UserProfile } from '~/libs/core'
99
import { downloadBlob } from '~/libs/shared'
1010

11-
import { editPayment, exportSearchResults, getMemberHandle, getPaymentMethods, getPayments, getTaxForms } from '../../../lib/services/wallet'
11+
import { editPayment, exportSearchResults, getMemberHandle, getPayments } from '../../../lib/services/wallet'
1212
import { Winning, WinningDetail } from '../../../lib/models/WinningDetail'
1313
import { FilterBar, formatIOSDateString, PaymentView } from '../../../lib'
1414
import { ConfirmFlowData } from '../../../lib/models/ConfirmFlowData'
1515
import { PaginationInfo } from '../../../lib/models/PaginationInfo'
16-
import { TaxForm } from '../../../lib/models/TaxForm'
17-
import { PaymentProvider } from '../../../lib/models/PaymentProvider'
1816
import PaymentEditForm from '../../../lib/components/payment-edit/PaymentEdit'
1917
import PaymentsTable from '../../../lib/components/payments-table/PaymentTable'
2018

@@ -102,7 +100,7 @@ const ListView: FC<ListViewProps> = (props: ListViewProps) => {
102100
}, [])
103101

104102
const convertToWinnings = useCallback(
105-
(payments: WinningDetail[], handleMap: Map<number, string>, userHasTaxFormSetup: Map<string, boolean>, userHasPaymentProvider: Map<string, boolean>): ReadonlyArray<Winning> => payments.map(payment => {
103+
(payments: WinningDetail[], handleMap: Map<number, string>): ReadonlyArray<Winning> => payments.map(payment => {
106104
const now = new Date()
107105
const releaseDate = new Date(payment.releaseDate)
108106
const diffMs = releaseDate.getTime() - now.getTime()
@@ -129,9 +127,9 @@ const ListView: FC<ListViewProps> = (props: ListViewProps) => {
129127
}
130128

131129
if (status === 'ON_HOLD') {
132-
if (!userHasTaxFormSetup.get(payment.winnerId)) {
130+
if (!payment.paymentStatus?.taxFormSetupComplete) {
133131
status = 'On Hold (Tax Form)'
134-
} else if (!userHasPaymentProvider.get(payment.winnerId)) {
132+
} else if (!payment.paymentStatus?.payoutSetupComplete) {
135133
status = 'On Hold (Payment Provider)'
136134
} else {
137135
status = 'On Hold (Member)'
@@ -169,30 +167,8 @@ const ListView: FC<ListViewProps> = (props: ListViewProps) => {
169167
const payments = await getPayments(pagination.pageSize, (pagination.currentPage - 1) * pagination.pageSize, filters)
170168
const winnerIds = payments.winnings.map(winning => winning.winnerId)
171169

172-
const onHoldUserIds = payments.winnings
173-
.filter(winning => winning.details[0].status === 'ON_HOLD')
174-
.map(winning => winning.winnerId)
175-
176-
const userHasTaxFormSetup: Map<string, boolean> = new Map()
177-
const userHasPaymentProvider: Map<string, boolean> = new Map()
178-
179-
try {
180-
const missingTaxForms = await getTaxForms(100, 0, onHoldUserIds)
181-
const missingPaymentProviders = await getPaymentMethods(100, 0, onHoldUserIds)
182-
183-
missingTaxForms.forms.forEach((form: TaxForm) => {
184-
userHasTaxFormSetup.set(form.userId, form.status === 'ACTIVE')
185-
})
186-
187-
missingPaymentProviders.paymentMethods.forEach((method: PaymentProvider) => {
188-
userHasPaymentProvider.set(method.userId, method.status === 'CONNECTED')
189-
})
190-
} catch (err) {
191-
// Ignore errors
192-
}
193-
194170
const handleMap = await getMemberHandle(winnerIds)
195-
const winningsData = convertToWinnings(payments.winnings, handleMap, userHasTaxFormSetup, userHasPaymentProvider)
171+
const winningsData = convertToWinnings(payments.winnings, handleMap)
196172
setWinnings(winningsData)
197173
setPagination(payments.pagination)
198174
} catch (apiError) {

src/apps/wallet-admin/src/lib/models/PaymentProvider.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/apps/wallet-admin/src/lib/models/TaxForm.ts

Lines changed: 0 additions & 12 deletions
This file was deleted.

src/apps/wallet-admin/src/lib/models/WinningDetail.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ export interface PaymentDetail {
88
datePaid: string
99
}
1010

11+
export interface PayoutStatus {
12+
payoutSetupComplete: boolean;
13+
taxFormSetupComplete: boolean;
14+
}
15+
1116
export interface Winning {
1217
id: string
1318
description: string
@@ -42,4 +47,5 @@ export interface WinningDetail {
4247
createdAt: string
4348
releaseDate: string
4449
datePaid: string
50+
paymentStatus?: PayoutStatus
4551
}

src/apps/wallet-admin/src/lib/services/wallet.ts

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ import { xhrDeleteAsync, xhrGetAsync, xhrPatchAsync, xhrPostAsync } from '~/libs
44
import { postAsyncWithBlobHandling } from '~/libs/core/lib/xhr/xhr-functions/xhr.functions'
55

66
import { WalletDetails } from '../models/WalletDetails'
7-
import { TaxForm } from '../models/TaxForm'
87
import { WinningDetail } from '../models/WinningDetail'
9-
import { PaymentProvider } from '../models/PaymentProvider'
108
import { TransactionResponse } from '../models/TransactionId'
119
import { PaginationInfo } from '../models/PaginationInfo'
1210
import { WinningsAudit } from '../models/WinningsAudit'
@@ -228,58 +226,3 @@ export async function getMemberHandle(userIds: string[]): Promise<Map<number, st
228226

229227
return handleMap
230228
}
231-
232-
// TODO: remove
233-
export async function getTaxForms(limit: number, offset: number, userIds: string[]): Promise<{
234-
forms: TaxForm[],
235-
pagination: PaginationInfo
236-
}> {
237-
const body = JSON.stringify({
238-
limit,
239-
offset,
240-
userIds,
241-
})
242-
243-
const url = `${baseUrl}/admin/tax-forms`
244-
const response = await xhrPostAsync<string, ApiResponse<{
245-
forms: TaxForm[],
246-
pagination: PaginationInfo
247-
}>>(url, body)
248-
249-
if (response.status === 'error') {
250-
throw new Error('Error fetching tax forms')
251-
}
252-
253-
if (response.data.forms === null || response.data.forms === undefined) {
254-
response.data.forms = []
255-
}
256-
257-
return response.data
258-
}
259-
260-
export async function getPaymentMethods(limit: number, offset: number, userIds: string[]): Promise<{
261-
paymentMethods: PaymentProvider[],
262-
pagination: PaginationInfo
263-
}> {
264-
const body = JSON.stringify({
265-
limit,
266-
offset,
267-
userIds,
268-
})
269-
270-
const url = `${baseUrl}/admin/payment-methods`
271-
const response = await xhrPostAsync<string, ApiResponse<{
272-
paymentMethods: PaymentProvider[],
273-
pagination: PaginationInfo
274-
}>>(url, body)
275-
276-
if (response.status === 'error') {
277-
throw new Error('Error fetching payment methods')
278-
}
279-
280-
if (response.data.paymentMethods === null || response.data.paymentMethods === undefined) {
281-
response.data.paymentMethods = []
282-
}
283-
284-
return response.data
285-
}

0 commit comments

Comments
 (0)