diff --git a/src/domain/Challenge.ts b/src/domain/Challenge.ts index e3b6528..5ad710e 100644 --- a/src/domain/Challenge.ts +++ b/src/domain/Challenge.ts @@ -592,7 +592,8 @@ class ChallengeDomain extends CoreOperations { completedChallenge.billing?.billingAccountId ?? 0, completedChallenge.legacy?.subTrack ?? "Task", completedChallenge.name, - completedChallenge.payments + completedChallenge.payments, + completedChallenge.billing?.markup ?? 0, ); baValidation = { challengeId: challenge?.id, @@ -789,7 +790,8 @@ class ChallengeDomain extends CoreOperations { completedChallenge.billing?.billingAccountId ?? 0, completedChallenge.legacy?.subTrack ?? "Task", completedChallenge.name, - completedChallenge.payments + completedChallenge.payments, + completedChallenge.billing?.markup ?? 0, ); if (baValidation != null) { @@ -914,7 +916,8 @@ class ChallengeDomain extends CoreOperations { billingAccountId: number, challengeType: string, title: string, - payments: UpdateChallengeInputForACL_PaymentACL[] + payments: UpdateChallengeInputForACL_PaymentACL[], + challengeMarkup: number, ): Promise { const token = await m2mToken.getM2MToken(); @@ -931,7 +934,7 @@ class ChallengeDomain extends CoreOperations { return 0; } - let totalAmount = 0; + const totalAmount = payments.reduce((sum, payment) => sum + payment.amount, 0); // TODO: Make this list exhaustive const mapType = (type: string) => { if (type === "placement") { @@ -958,6 +961,7 @@ class ChallengeDomain extends CoreOperations { installmentNumber: 1, currency: "USD", billingAccount: `${billingAccountId}`, + challengeFee: totalAmount * challengeMarkup, }, ]; @@ -970,8 +974,6 @@ class ChallengeDomain extends CoreOperations { : title; } - totalAmount += payment.amount; - const payload = { winnerId: payment.userId.toString(), type: "PAYMENT", diff --git a/src/util/FinanceApi.ts b/src/util/FinanceApi.ts index 9544255..ae3182a 100644 --- a/src/util/FinanceApi.ts +++ b/src/util/FinanceApi.ts @@ -6,6 +6,7 @@ export interface PaymentDetail { installmentNumber: number; currency: string; billingAccount: string; + challengeFee: number; } export interface PaymentPayload {