Bonjour,
Merci pour les infos.
Mais je ne comprend pas tout ;-)
Donc je vais expliquer ce qui doit se passer, comme cela peut-être pourrez-vous me dire comment cela c'est passé par rapport à commencer cela "devrait se passer" ?
Donc tout d'abord une petit retour en arrière pour expliquer ce qui a justifié notre passage à l'UTC dans la base de données :
Avant la 1.2, les dates (par date il faut entendre date+heure=datetime) étaient sauvées dans la base de données sans se soucier de savoir qu'elle était le fuseau utilisé. Donc en pratique, les dates dans la base correspondaient aux dates affichées par OpenFlyers, et les gens les utilisaient telles qu'elles. Implicitement, les dates correspondaient donc au fuseau du club (en France : TU+1 l'hiver et TU+2 l'été).
La nécessité de changer est parti d'un simple bug : lors des jours de changement d'heure nous avions un décalage entre le clic sur une rectangle d'heure et l'heure réellement affichée dans le formulaire de résa. Pourquoi ? je ne sais plus. Mais après réflexion, il est apparu que la source du problème venait du fait que les dates dans la base étaient implicitement des heures locales et que cela posait bien d'autres problèmes (impossibilité de savoir à priori en récupérant juste une base qu'elle était le fuseau donc les vrais heures de résa, impossibilité de faire des soustractions d'heures pour la future facturation, etc.). La solution était donc de passer à l'UTC pour la base de données. Cela offrait également un gros avantage : permettre à l'utilisateur de choisir son fuseau horaire.
Mais, pour passer d'une version 1.1 à une version 1.2, il faut donc modifier dans la table des résas (booking) toutes les dates pour qu'elle passent en UTC.
Pour ce faire, il faut connaitre le fuseau qui était utilisé implicitement sur l'ancienne version. Donc lors de la migration, OF demande le fuseau à utiliser. Normalement le fuseau proposé est le premier fuseau par ordre alphabétique qui correspond à ce que "devine" OF (je crois qu'il prend le fuseau du serveur en premier mais de mémoire je n'en suis pas sûr).
L'administrateur qui effectue la migration doit absolument vérifier le fuseau proposer et mettre le bon fuseau (en France : "Europe/Paris"
.
Ensuite, la migration se fait en retranchant la valeur du fuseau aux réservations en base de données. Cela tient compte bien sûr des heures d'hiver ou d'été (DST).
Exemple : une résa en France qui commencait l'été à 11h00, doit commencer après migration à 9h00 (dans la base de données).
Par contre, l'affichage doit être inchangé et tous les utilisateurs sont mis par défaut avec le fuseau horaire choisi par l'administrateur.
Voila !
Christophe LARATTE
OpenFlyers manager