1 votes

Mise en œuvre du rabais

Scénario classique, où une commande a des lignes de commande.

Le client souhaite pouvoir appliquer un rabais à l'ensemble de la commande, qu'il s'agisse d'un montant fixe ou d'un pourcentage.

Quelle serait la meilleure façon de mettre cela en œuvre ?

Je pense stocker deux champs dans l'objet de la commande :

  • Montant fixe du remboursement
  • Pourcentage du rabais

Je peux ensuite calculer le total de la ristourne - et faire de la ristourne une ligne de commande, que je recalcule chaque fois que les champs de ristourne ou les lignes de commande sont modifiés.

Mises en garde, conseils, meilleures pratiques ?

2voto

BobBrez Points 409

Regardez si vous pouvez utiliser quelque chose comme le modèle composite.

Les remises ne doivent pas être stockées dans les objets eux-mêmes mais doivent être appliquées en tant qu'entité externe. Pensez à prévoir une flexibilité suffisante pour des changements réalistes.

2voto

Vinay Sajip Points 41286

Il y a plus de flexibilité en gardant la logique du rabais séparée de la commande. Par exemple, les règles de gestion peuvent être modifiées afin d'avoir une stratégie de rabais plus flexible, par exemple, les rabais ne s'appliquent qu'à certaines lignes de commande, selon qu'il existe ou non une promotion pour ces articles. Cela s'apparente davantage à un modèle de stratégie (qui peut ou non être excessif pour votre scénario et votre environnement commercial).

Dans ce scénario, la commande aurait une clé étrangère dans une table de rabais qui identifierait la stratégie de rabais et toute donnée associée telle que le pourcentage ou le montant fixe.

1voto

Yaroslav Yakovlev Points 1634

Avez-vous pensé à ajouter des remises à toutes les lignes de commande. Si aucun rabais, c'est un rabais zéro. N'importe quel rabais peut être ajouté.

Le modèle que vous devez utiliser dans ce cas dépend de la façon dont vous allez utiliser les remises. Si un seul rabais sur la commande - la stratégie est très bien.

Si les rabais peuvent fonctionner les uns avec les autres (rabais pour le premier achat, 10000 clients et carte de réduction), vous devriez envisager le décorateur comme autre moyen de mettre en œuvre autant de stratégies que la combinaison de rabais.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X