Skip to content

Commit 76cefa8

Browse files
Fix: Ensure correct commission display
The public dashboard was still displaying an incorrect commission amount. This commit ensures that the correct commission value is displayed by using the stored commission value.
1 parent cb1f87f commit 76cefa8

2 files changed

Lines changed: 33 additions & 10 deletions

File tree

src/hooks/useAffiliateStats.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,19 @@ export const useAffiliateStats = (affiliateId: string | null) => {
5353
const data = doc.data();
5454
const commission = parseFloat(data.commission) || 0;
5555

56-
console.log('📊 AFFILIATE STATS - Commission:', {
56+
console.log('📊 AFFILIATE STATS - Commission DEBUG:', {
5757
docId: doc.id,
58-
commission: commission
58+
rawCommission: data.commission,
59+
parsedCommission: commission,
60+
amount: data.amount,
61+
commissionRate: data.commissionRate,
62+
type: typeof data.commission
5963
});
6064

6165
return total + commission;
6266
}, 0);
6367

64-
console.log('📊 AFFILIATE STATS - TOTAL FINAL:', totalCommissions);
68+
console.log('📊 AFFILIATE STATS - TOTAL COMMISSIONS CALCULATED:', totalCommissions);
6569

6670
setStats({
6771
clicks: clicksCount,

src/hooks/useTracking.ts

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,33 @@ export const useTracking = () => {
3939
const affiliateDoc = await getDoc(doc(db, 'affiliates', affiliateId));
4040
if (affiliateDoc.exists()) {
4141
const affiliateData = affiliateDoc.data();
42-
commissionRate = parseFloat(affiliateData.commissionRate) || 10;
43-
calculatedCommission = (amount * commissionRate) / 100;
42+
const rawCommissionRate = affiliateData.commissionRate;
4443

45-
console.log('💰 TRACKING - Affiliate found:', {
44+
console.log('💰 TRACKING - RAW COMMISSION RATE FROM DB:', rawCommissionRate, typeof rawCommissionRate);
45+
46+
// CORRECTION CRITIQUE : Gérer les différents formats possibles
47+
if (typeof rawCommissionRate === 'string') {
48+
commissionRate = parseFloat(rawCommissionRate);
49+
} else if (typeof rawCommissionRate === 'number') {
50+
commissionRate = rawCommissionRate;
51+
}
52+
53+
// Si le taux est > 1, c'est probablement un pourcentage (99 au lieu de 0.99)
54+
if (commissionRate > 1) {
55+
console.log('💰 TRACKING - Commission rate is > 1, treating as percentage');
56+
calculatedCommission = (amount * commissionRate) / 100;
57+
} else {
58+
console.log('💰 TRACKING - Commission rate is <= 1, treating as decimal');
59+
calculatedCommission = amount * commissionRate;
60+
}
61+
62+
console.log('💰 TRACKING - COMMISSION CALCULATION DEBUG:', {
4663
affiliateId,
47-
commissionRate,
64+
rawCommissionRate,
65+
parsedCommissionRate: commissionRate,
4866
amount,
49-
calculatedCommission
67+
calculatedCommission,
68+
isPercentage: commissionRate > 1
5069
});
5170
} else {
5271
console.log('⚠️ TRACKING - Affiliate not found, using default 10%');
@@ -62,10 +81,10 @@ export const useTracking = () => {
6281
commissionRate: commissionRate,
6382
commission: calculatedCommission,
6483
timestamp: new Date(),
65-
verified: true, // Auto-vérifié pour les tests
84+
verified: true,
6685
};
6786

68-
console.log('💰 TRACKING - Final conversion data:', conversionData);
87+
console.log('💰 TRACKING - FINAL CONVERSION DATA TO SAVE:', conversionData);
6988

7089
const docRef = await addDoc(collection(db, 'conversions'), conversionData);
7190
console.log('✅ TRACKING - Conversion recorded with ID:', docRef.id);

0 commit comments

Comments
 (0)