Comment fonctionne ton app quand le client choisi la durée et les options? Est-ce que tu enregistre le tout en DB? Comment? Souvent, la façon de procéder, est de créer un “item” dans un “panier” (donc 2 BD). tu pourras ensuite faire la somme des items pour afficher le total.
C’est là tout le problème. C’est une question de structure et cela facilitera grandement la maintenance.
Tu dois créer un DB pour les options, une pour les paniers (ou facture ou peu importe). Après, selon ton schéma d’affaire, une troisième DB pour les items du panier peu être nécessaire. Mais faisons simple pour le moment.
DB options contiendrait 2 champs: Prix (type nombre), Nom (type texte).
DB Panier va contenir 4 champs: client (type user, si on considère que l’usager va se connecter, sinon ce n’est pas nécessaire pour l’instant), un champ “options choisies” (type liste de “options”), un champ durée (type nombre) et un champ “statut” (dans l’idéal, cela serait un type Option Set “statut”, mais pour démarrer plus simple, cela peut être un champ de type texte)
Ton affichage des options sera un RG de type “options” avec Search for options dans le data source.
La première étape de ton formulaire sera de faire choisir la durée du voyage. Quand le client clique sur un bouton vers la prochaine étape, tu crées alors le panier avec les infos clients et durée. Selon si tu as un “one page” app ou deux pages, alors soit tu met la page avec le type “Panier” ajoute l’action Go to page “options” et la tu utilises l’item créé dans le panier précédent ou sinon tu peux mettre un groupe avec le type “panier” et mettre l’action Set groupe “panier” avec l’item créé dans l’action précédente avant d’afficher les options.
Tu affiches ensuite les options, Chaque fois que l’utilisateurs cliques sur l’option (avec un checkbox ou pas… tu peux utiliser "highlighter la boite au complet quand c’est choisi, utilser un icone peu importe… il y a plusieurs moyens d’afficher la sélection) Alors tu auras deux workflow qui se déclencheront, chacun avec une condition opposée: (Disons que tu as envoyé l’utilisateur vers une page “option” avec le type “panier”, ce sera Current page’s panier’s options choisies contain This option / Current page’s panier’s options choisies doesn’t contain This option
Dans le workflow Current page’s panier’s options choisies contain This option > Make change to thing (panier) champ "options choisies “remove” this option
Dans le workflow Current page’s panier’s options choisies doesn’t contain This option> Make change to thing (panier) champ "options choisies “add” this option
Où tu as le S tu remplaces par Current page’s options choisies’s each item “prix”:sum * current page’s panier “durée”
Dans ton état actuel, tu pourrais mettre un type à ton groupe pour chaque option (type nombre)
Tu met la valeur que tu as mis en dur dans le texte (et le texte lui faire référence au Parent group’s nombre)
Tu créé un state quelque part sur la page. Quand l’utilisateur clique sur le checkbox
When input value change checkbox (only when this checkbox is “checked”)
Set state: State + parent group nombre
When input value change checkbox (only when this checkbox is “unchecked”)
Set state: State - parent group nombre
Est-ce qu’un calculateur comme celui-ci conviendrait à votre démo ?
Je l’ai conçu avec goRules. Il permet de simplifier des formules complexes en une logique simple, interrogeable via une API. Dans le calculateur ci-dessus, les prix varient selon le forfait choisi et le montant, comme vous et jici l’avez décrit.
Au fait, désolé pour la traduction automatique du français.