Re: Formule de tarification pour vol après 11:00
Date: mercredi 12 janvier 2011 14:55:36
La formule de base qui fera appliquer, ce sera :
( (formatDate('hmm',%START_DATE) > 659) ? $1 : $2 )
Après, je ne sais pas ce que vous voulez coller comme tarification dans $1 et $2.
Donc pour $1 ou $2, ça pourrait être :
roundCeil((((getBalance(%PILOT)>$S ? ($C2-$R) : $C2)*%DURATION/600)-0.5),1)
Qu'est-ce que fait la formule de base que j'ai créé :
- Je prend la date de début du vol (%START_DATE) qui est en UTC
- Je la formate en utilisant la fonction formatDate pour n'avoir que les heures et les minutes (pattern 'hmm') donc pour 13:05, j'aurais
1305 et pour 5:17, j'aurais 517. La date après formatage ne peut qu'être dans l'intervalle de valeurs 0 - 2359.
- Je fais un test IF de supériorité+égalité pour traduire "après telle heure ou à telle heure" donc là, je compare avec 7:00 UTC. J'ai utilisé 659 et non 700 pour 7:00 UTC parce que nos opérateurs de comparaison autorisés sont seulement : égalité, supériorité, infériorité. Ca se traduit en gros par "après 7:00 (7:00 inclus)".
On peut toujours faire une conversion de la date de début de vol en heure locale. Ca nous donnerait comme formule "après ou à 11:00 française" :
( (formatDate( 'hmm',convertTimezone(%START_DATE, 'UTC', 'Europe/Paris') ) > 1100) ? $1 : $2 )
Si vous utilisez l'UTC dans la formule, alors il n'y a pas de décalage horaire à faire donc la toute première formule (tout en haut) suffit.
Modifié 1 fois. Dernière modification le 12/01/11 17:18 par claratte.