Tâche de programmation de vente au détail

Comment aider le vendeur à déterminer s'il existe un produit avec les bonnes caractéristiques?

Exemple
Étant souvent venu au magasin de chaussures et choisissant le modèle que vous aimez, nous attendons que les vendeurs déterminent s'il existe une taille appropriée

Étant donné


Liste des variantes . Chaque variation contient à son tour une liste d'attributs et leurs valeurs.

example-data.json
[ { "Size": 37, "Color": "Brown", "Lock": "Zipper" }, { "Size": 37, "Color": "Black", "Lock": "Zipper" }, { "Size": 38, "Color": "Blue", "Lock": "Laces" }, { "Size": 39, "Color": "Blue", "Lock": "Laces" }, { "Size": 39, "Color": "Brown", "Lock": "Zipper" }, { "Size": 39, "Color": "Brown", "Lock": "Laces" }, { "Size": 40, "Color": "Brown", "Lock": "Laces" } ] 


Il est nécessaire de créer une interface par laquelle le vendeur, après avoir sélectionné les propriétés nécessaires, peut déterminer si les marchandises sont en stock ou non.

Termes:


  • Une variation contient une liste complète d'attributs (il ne peut y avoir de variation avec des valeurs inconnues, si l'attribut est présent dans une variation, alors il est dans tous)
  • La longueur de la liste d'options pour les valeurs d'attribut varie d'un attribut à l'autre (un attribut peut prendre l'une des deux valeurs, l'autre des quatre, etc.)
  • Un attribut ne peut avoir qu'une seule valeur.

Fonctionnalité:


L'interface est une liste de listes, où au premier niveau est le type d'attribut, au second est sa valeur.

Chaque élément peut être dans 3 états:

  • Disponible pour sélection - Blanc
  • Actif - Bleu
  • Disponible dans d'autres combinaisons - Gris

Au début, tous les éléments sont sélectionnables.



Après avoir sélectionné l'un des attributs, tous les autres sont examinés.



Nous avons choisi 37 (pourrait commencer par le marron, la logique est la même). Toutes les autres tailles sont blanches (car elles sont par condition). Il n'y a pas de couleur bleue. Il devient gris, le reste est blanc. 37 est uniquement sur Lightning. La foudre est donc sélectionnée automatiquement. Et ici, attention! 40 il n'y a pas de taille d'éclair, puis 40 devient gris.

Si nous avions soudainement besoin d'une couleur bleue, la taille est réinitialisée (car 37 il n'y a pas de bleu) et la serrure (car il n'y a pas 37 éclairs, si elle l'était, elle resterait sélectionnée), les lacets sont automatiquement sélectionnés (parce que le bleu uniquement avec lacets) et les tailles deviennent disponibles 38, 39.



La tâche est applicable comme:

  • Pratique pour les étudiants de programmation
  • Tâche de test pour la sélection des candidats
  • Juste un passe-temps intéressant pour les développeurs expérimentés

Demande: ne téléchargez pas la solution au problème dans les commentaires.

Source: https://habr.com/ru/post/fr428662/


All Articles