Exercices Projets guidés E-commerce #12 : Système de coupons
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

E-commerce #12 : Système de coupons

Un coupon de reduction a un code, un type (pourcentage ou fixe), une valeur, et un nombre maximum d'utilisations. Une fois le max atteint, le coupon est expire.

Crée une classe Coupon avec :
- __init__(self, code, type_reduction, valeur, utilisations_max)
- utilisations : compteur initialise a 0
- est_valide() : True si utilisations < utilisations_max
- appliquer(total) : calcule le nouveau total, incremente le compteur, et retourne le résultat. Si le coupon n'est plus valide, leve ValueError.

Le type_reduction est soit 'pourcentage' soit 'fixe'. Pour 'fixe', le total ne peut pas devenir negatif.

Exemple :
c = Coupon('PROMO10', 'pourcentage', 10, 3)
c.appliquer(Decimal('100')) # Decimal('90'), utilisations = 1
c.appliquer(Decimal('50')) # Decimal('45'), utilisations = 2
c.appliquer(Decimal('80')) # Decimal('72'), utilisations = 3
c.appliquer(Decimal('20')) # ValueError ! (3 utilisations max)

Tests (2/4)

Coupon valide
from decimal import Decimal
c = Coupon('PROMO10', 'pourcentage', 10, 3)
assert c.est_valide() == True
assert c.appliquer(Decimal('100')) == Decimal('90')
Expire apres max utilisations
from decimal import Decimal
c = Coupon('FIX20', 'fixe', Decimal('20'), 1)
c.appliquer(Decimal('100'))
assert c.est_valide() == False

+ 0 tests cachés

Indices (3 disponibles)

solution.py