Bonjour à tous et merci pour ce super projet que je suis en train de tester.
Je suis en train de paramétrer une activité nous permettant de gérer les cotisations de
nos membres.
Celles-ci sont variable en fonctions de plusieurs paramètres, donc celui d’être
moniteur ou responsable de section
J’ai donc créer un champ dans le fiche de membre avec :
Nom unique : monit_resp
Type : Sélecteur à choix multiple
Options disponibles :
Moniteur
Responsable de section
Dans ma fiche de tarif, je met le calcul suivant :
CASE
WHEN monit_resp = 'Moniteur' THEN (169.26 - 60.74) * 100
WHEN monit_resp = 'Responsable de section' THEN (100 - 60.74) * 100
ELSE 200 * 100
END
Hors quand j’inscrit un adhérent « Moniteur » (case à cochée : moniteur) le tarif
appliqué est de 200€
Pouvez vous me dire si je suis bon dans ma logique, ou alors s’il y a une erreur ?
Merci d’avance
Laurent
Bonsoir,
Il faudrait regarder dans la table SQL. Je pense que le choix multiple
renvoit une valeur numérique et non le libellé que vous voyez.
Bonne soirée
Le jeu. 11 févr. 2021 à 19:23, Laurent et Valérie <lv.picamal@free.fr> a
écrit :
> Bonjour à tous et merci pour ce super projet que je suis en train de
> tester.
>
> Je suis en train de paramétrer une activité nous permettant de gérer les
> cotisations de nos membres.
>
> Celles-ci sont variable en fonctions de plusieurs paramètres, donc celui
> d’être moniteur ou responsable de section
>
> J’ai donc créer un champ dans le fiche de membre avec :
>
> Nom unique : monit_resp
>
> Type : Sélecteur à choix multiple
>
> Options disponibles :
>
> Moniteur
>
> Responsable de section
>
>
>
> Dans ma fiche de tarif, je met le calcul suivant :
>
> CASE
>
> WHEN monit_resp = 'Moniteur' THEN (169.26 - 60.74) * 100
>
> WHEN monit_resp = 'Responsable de section' THEN (100 - 60.74) *
100
> ELSE 200 * 100
> END
>
>
>
> Hors quand j’inscrit un adhérent « Moniteur » (case à cochée :
moniteur)
> le tarif appliqué est de 200€
>
>
>
> Pouvez vous me dire si je suis bon dans ma logique, ou alors s’il y a une
> erreur ?
>
>
>
> Merci d’avance
>
> Laurent
>
Hello,
les champs à choix multiple sont représentés par des valeurs
numériques. Il te faudrait soit une case à cocher, soit un sélecteur à
choix unique, si tu veux faire une comparaison textuelle.
Si tu tiens à utiliser un champ à choix multiple, il va te falloir
faire une comparaison binaire :
Donc si 'Responsable de section' est le choix n°2, donc dans une
requête SQL il faudra faire un "ET binaire" (symbole &) :
CASE WHEN (monit_resp & (1 << 2)) THEN...
Si c'était le choix numéro 5 il faudrait remplacer le "2" par un
"5" :
CASE WHEN (monit_resp & (1 << 5)) THEN...
c'est parce que la sélection multiple est enregistrée sous forme d'une
valeur binaire.
Cordialement.
Bonjour,
Je suis en train de paramétrer une cotisation nous permettant de gérer
les cotisations de nos membres.
Celles-ci sont variables en fonction des dispositifs d'aides possibles
J’ai donc créer un champ dans le fiche de "membres" avec :
Nom unique : "dispositif"
Type : Sélecteur à choix multiple
Options disponibles
Attention changer l'ordre des options peut avoir des effets
indésirables.
1.
2.
3.
4.
5.
6.
7.
Dans ma fiche de cotisation, je met la commande suivante :
UPDATE services_users
SET expected_amound = (
CASE
WHEN membres.dispositif = 1 THEN 'Néant'
WHEN membres.dispositif = 2 THEN expected_amound = 21200 - 9100
WHEN membres.dispositif = 4 THEN 'ANCV'
WHEN membres.dispositif = 8 THEN 'CS'
WHEN membres.dispositif = 16 THEN 'e.Pass Sport'
WHEN membres.dispositif = 32 THEN expected_amound = 21200 - 5000
WHEN membres.dispositif = 34 THEN expected_amound = 21200 - 9100 - 5000
ELSE expected_amound = 21200
END
)
Après avoir coché : enregistré en comptabilité puis renseigné l'exercice
comptable et le compte impacté 756 Cotissations
je me retrouve avec le message suivant : Formule de calcul invalide
Pouvez vous me dire si j'ai la bonne démarche et qu'elle est mon erreur
dans cette formule ?
Merci d’avance
Denis
Hello,
la formule de calcul est juste un calcul, il ne faut pas mettre de
UPDATE. Et ça attend un chiffre, avec les centimes (donc 42,01 € doit
être exprimé 4201).
Je ne comprends pas trop pourquoi tu donne des fois un montant et des
fois du texte ?
Donc dans ton cas ça donne simplement :
CASE
WHEN membres.dispositif = 1 THEN 0
WHEN membres.dispositif = 2 THEN 21200 - 9100
WHEN membres.dispositif = 4 THEN 0
WHEN membres.dispositif = 8 THEN 0
WHEN membres.dispositif = 16 THEN 0
WHEN membres.dispositif = 32 THEN 21200 - 5000
WHEN membres.dispositif = 34 THEN 21200 - 9100 - 5000
ELSE 21200
END
Cordialement.