Glossaire métier
Langage Buchard / Horizon. Mettre à jour quand un terme est introduit, renommé ou que sa définition change.
Voyage / Travel
- Travel — produit de voyage commercialisé. Type parmi
Catalog(catalogue régulier, dominant),OutOfCatalog(rare),Group(rare),Seaside(balnéaire, dominant aussi),OneDay(course d'un jour, régulière). Code :Domain/Entities/Travel.cs, enumDomain/Enum/TravelType.cs. - TravelCategory — catégorie marketing/produit (ex: Costa Brava, Espagne…). Code :
Domain/Entities/TravelCategory.cs. Pour Seaside, sert de groupement de rotation (cf. workflows). - TravelRange — gamme de voyages (regroupement éditorial).
MainTravelRange+ collectionTravelRanges. Code :Domain/Entities/TravelRange.cs. - CatalogPage — numéro de page dans la brochure papier Buchard.
- BusinessAxis — axe commercial pour segmentation analytique CA. Champ libre
Travel.BusinessAxis. - Favorite — voyage mis en avant en home page du site web.
- Legacy (sur Travel/Booking) — entité importée depuis l'ancien système Globe. Ne pas éditer.
- DepositPercentage — pourcentage d'acompte demandé à la réservation (par voyage). Source de vérité Horizon ET API web/mobile. Le client peut aussi tout payer d'un coup côté web → facture finale (Simple ou Balance) directe.
- FirstNightInTheBus / LastNightInTheBus — voyage long avec nuit dans le car aller et/ou retour. Impact sur dates hôtel et vouchers. Pour les Seaside, ces flags peuvent être surchargés par rotation via
SeasideDate.FirstNightInTheBus/LastNightInTheBus(nullable) — utile quand la dernière rotation de la saison part le matin et arrive le soir même au lieu du pattern habituel "départ soir + nuit dans le bus". Valeur effective =SeasideDate.X ?? Travel.X.
Occurrence / TravelOccurrence
- Occurrence — instance datée d'un (ou plusieurs) Travel : un départ précis avec sa capacité, son prix par tier (
SellingPrice/SellingPriceJunior/SellingPriceChild+ variantesOneWay), sonStatus(Published/Cancelled). Code :Domain/Entities/Occurrence.cs. - TravelOccurrence — table de jointure N-N entre
TraveletOccurrenceavec flagIsPriority(= "Main travel" pour cette occurrence). Permet le mécanisme rare de "voyage copie" : variante d'un voyage avec données spécifiques (car VIP, excursion en plus) cachée sauf en édition via la date. Mécanisme à éviter (alerte dans l'UI). - NavNo (sur Occurrence et SeasideDate) — identifiant Business Central liant à la commande de vente NAV/BC.
- OccurrenceCost / OccurrenceCostVariousCost / BreakEvenPoint — comptabilité analytique par départ, utilisée à titre indicatif uniquement (module en pause, données non publiées).
- OccurrenceCancellationTask / OccurrenceCancellationTaskValue — checklist d'annulation prévue mais pas utilisée actuellement.
- MinutesForADayOfWork — minutes de travail standard pour calculer le coût d'une journée chauffeur.
- ExpectedPassengers — [À CONFIRMER] usage exact (mémoire perdue côté équipe).
Réservation / Booking
- Booking — réservation client. Statut parmi
InCreation(panier),Estimate(devis envoyé),Draft(réservation provisoire, places réservées sans facture),WaitingList(liste d'attente quand voyage complet),Confirmed(acompte facturé),Billed(totalité facturée),Canceled,PendingWebOrMobile(paiement web/mobile en attente, parallèle). - BookingPassenger — passager d'un booking (jointure avec
Passenger). PorteTripType,Civility,MealPlan, prix calculé, sièges, activités, assurances, etc. - Passenger — personne physique (peut être lié à un
Customer, ou non). - TripType — sens du trajet :
OneWay(aller simple),RoundTrip(aller-retour, défaut),Return(retour simple). - PassengerType — tier d'âge :
Adult,Junior,Child,Baby. Calculé à la volée depuis l'âge selon les seuils du voyage (cf. business-rules). - Civility —
Madam/Sir/Other(string). Stocké en string surPassengeretCustomer. - PaymentDepositOnly — flag booking :
true= acompte uniquement,false= totalité. Utilisé uniquement pour les paiements web/mobile (Saferpay ou CembraPay). En back-office Horizon, ce sont les statutsConfirmed(acompte) vsBilled(totalité) qui font foi. - TransactionId — ID de transaction de la passerelle de paiement (Saferpay ou CembraPay) pour les bookings web/mobile en attente.
- ReservationCode — code de réservation visible client.
- CustomerIncludeInBooking — flag : le client est aussi le 1er passager.
- OfferEndDate — pour les statuts
Estimate, date après laquelle l'offre expire. - CancellationAction — action liée à l'annulation (cf.
Domain/Enum/CancellationAction.cs).
Facturation / Invoice
- Invoice — facture émise. 7 types :
- Confirmation — acompte.
- Balance — solde après acompte.
- Simple — facture totale hors-réservation (typiquement adhésion Club Buchard).
- Cancellation — facture d'annulation (frais retenus au client).
- CancellationInsurance — facture d'annulation transmise à l'assurance (dossier).
- BuchardPart — facture interne pour bons offerts en partenariat (radio etc.) — Buchard est rémunérée par le partenaire pour le bon.
- Compensation — geste commercial (utilisé pour bons cadeaux).
- InvoiceCategory — catégorie :
Booking,Gift,Membership,MembershipRenew. - InvoiceStatus —
None,Pending(en attente paiement),OnGoing(en cours). - Invoice.Enabled — flag de versioning : chaque réémission crée une nouvelle Invoice, l'ancienne passe à
Enabled = false. Filtrer toujours surEnabledquand on cherche la version courante. - NavNo (sur Invoice) — numéro de facture postée dans NAV/BC. Toutes les factures sont envoyées vers BC (pas de filtre).
- QR-Bill — bulletin de versement suisse (
QrBill.liquid,QrBillConfirmationBalance.liquid). Codecrete.SwissQRBill. - InvoiceSplit — répartition de paiement entre plusieurs payeurs.
TVA / VAT
- VatType — régime TVA d'un voyage, porté par
OccurrenceCost.VatType(Domain/Enum/VatType.cs). Trois valeurs :Swiss— voyage 100% en Suisse. TVA suisse normale appliquée sur tout, groupe TVA NAV =vatRate.Group(taux en vigueur), comptes G/L3010(privés) /3902(privés remise) /3911(agences remise).PinkArea— zone rose : voyage transfrontalier (départ Suisse + portion étranger). Sur la facture BC, la part suisse forfaitaire de 25 CHF par passager est soumise à la TVA suisse normale, le reste est exonéré (groupeZ-ROSE). Comptes G/L3011(privés) /3901(privés remise) /3908(agences remise). Cf. business-rules pour le mécanisme de split.OutsidePinkArea— voyage 100% à l'étranger. Totalement exonéré, aucun forfait TVA. Groupe NAV =ZERO, mêmes comptes G/L quePinkArea(3011/3901/3908).
- Forfait TVA (25 CHF/passager) — montant fixe représentant la part suisse d'un voyage zone rose, soumise à TVA suisse normale. Émis comme
InvoiceItemséparé sur les facturesConfirmation/Balance/Cancellationdes voyagesPinkArea, en base HT (BC rajoute la TVA suisse pour retomber sur 25). Le total client est inchangé (split interne, pas ajout) — cf. business-rules pour le retraitement deInvoice.Total. - SettingVatRate — taux TVA daté (table
SettingVatRate). Résolu par_settingVatRateService.GetByDate(travelDate). Toujours passer la date du voyage, pasDateTime.Now.
Paiement / Payment
- Payment — encaissement.
PaymentTypeindique le moyen : Cash (5 villes : Leytron, Ecuvillens, Aubonne, Chaux-de-Fonds, Neuchâtel — chaque bureau Buchard a son compte d'encaissement cash), CreditAndDebitCard / PostCard / Twint / RekaCheck / RekaCard, plus les variantes "online" (CreditAndDebitCardOnline, TwintOnline, RekaCardOnline) et CembraPay. - Saferpay — passerelle CB en ligne (Initialize → Authorize → Capture).
- CembraPay — paiement échelonné en ligne. Remplace SwissBilling.
- SwissBilling — DÉPRÉCIÉ, remplacé par CembraPay. Code conservé. Retiré des listes déroulantes de saisie en août 2026 (
PaymentTypeSelection.Hidden) ; reste affiché sur l'historique. - PaymentDepositOnly — cf. plus haut.
Client / Customer
- Customer — fiche client.
CustomerTypeparmiPrivate,Company,Agency(agences partenaires : même flow, certaines avec rabais). - Club Buchard / ClubMembership — adhésion annuelle payante avec offres réservées. Niveaux
None,Single,Couple(ClubMembershipType). Renouvellement annuel →InvoiceCategory.MembershipRenew.Customer.PaymentTypestocke ici le moyen de paiement utilisé pour l'adhésion en ligne (uniquement) — ce n'est PAS une "préférence générale" du client. - Guest customer — compte créé automatiquement côté site web pour finaliser une réservation sans inscription. Nettoyé chaque jour par
Worker.CleanGuestCustomerssi ni booking, ni gift, ni membership rattaché. - CustomerRefreshToken — token de refresh pour l'auth API du site web/mobile.
Points de fidélité / Loyalty
- Point de fidélité — unité du programme de fidélité. Barème :
0,1 ptgagné par CHF dépensé (×2 sur mobile),10 pts = 1 CHFde réduction. Détail :.claude/docs/modules/loyalty-points.md. - LoyaltyTransaction — ligne du grand livre des points (table append-only).
Pointssigné :> 0crédit (gain),< 0débit (utilisation / expiration / annulation).TransactionType∈LoyaltyTransactionType(crédits :BookingPurchase,MobileAppDownload,ClubMembershipJoin,BookingRefund,ManualCreditAdjustment,AccountCreationdésactivé ; débits :BookingPointsSpent,Expiration,BookingCancellation,ManualDebitAdjustment). - PointsRemaining — points encore disponibles sur un crédit (null pour les débits) ; décrémenté en FIFO par date d'expiration.
- Points disponibles — crédits non expirés et déjà valides (
ValidFrom <= date). Exposés API client viaCustomer.LoyaltyPoints. - Points en attente — crédits non expirés mais pas encore valides (
ValidFromdans le futur, typiquement points d'un voyage pas encore terminé). Exposés viaCustomer.PendingLoyaltyPoints. - ConsumeLoyaltyPoints — flag booking :
true= consommer les points du client sur cette résa (tout-ou-rien).ConsumedLoyaltyPoints= nombre réellement consommé (sortie, recalculé serveur). - TravelLoyaltyPointsWinningType — override du gain par voyage (
None/FixedAmount/Multiplier) ; seulNoneactif (les deux autres prêts mais commentés).
Logistique / Tableaux de chargement
- Line — parcours global (ex: "Valais → Italie").
- Drive — sous-trajet d'une Line (ex: "Sion → Martigny via Saxon").
- Stop — lieu d'arrêt géographique (locality + place).
IsTransfer/Transferflag = arrêt où les passagers passent du petit bus de chargement au grand car principal. - Timetable / TimetableStop — modèles d'horaires par Line, surchargeables au niveau d'un tableau de chargement via
LoadingTableTimetableStop. - LoadingTable — tableau de chargement (= organisation des cars/horaires/arrêts pour un groupe d'occurrences). Flag
Returns:false= chargement/aller,true= dépose/retour. FlagSeaside: tableau dédié aux voyages balnéaires. - OrderResourcesByDate (sur LoadingTable) — flag de compatibilité ascendante pour ne pas casser les vieux tableaux quand la fonction de tri par date a été ajoutée.
- LoadingTableEntry — ligne éditable manuelle d'un LoadingTable, représente un car de chargement (petit bus qui ramasse les passagers et les amène au car principal, transfert via
IsTransfer). - DriverFolder — dossier remis au chauffeur le matin du départ : liste passagers, plan véhicule, horaires sur les lieux par trajet, et tableau de chargement. Export Excel via
Pages/LoadingTables/DriverFolder.cshtml.cs. - Visual Planning (VP) — système externe propriétaire (Stilog) où les dispatchers organisent les chauffeurs/véhicules. Horizon lit depuis VP la liste des assignments (chauffeurs, hôtesses, véhicules) et écrit uniquement le nombre de passagers par date (events) aller/retour.
- Resource — entité Horizon liant une personne ou un véhicule à son
VisualPlanningId.ResourceType:Driver,Host(hôtesse/steward),Musician,Vehicle(véhicule réel, ex: "MAN 238 acheté 2020-01-08") — distinct de l'entitéVehicleTypequi est la catégorie (ex: car 44 places).
Hébergement / Accommodation
- Accommodation — hôtel ou logement. Champs
ChildMin/ChildMax,JuniorMin/JuniorMax,AdultMindéfinissant les seuils d'âge pour le pricing. - AccommodationCategory — catégorie d'hôtel. Sert au regroupement Seaside.
- Travel.Accommodation (singulier) — hôtel principal du voyage (Seaside). Travel.Accommodations (collection) — pour les voyages catalogue qui visitent plusieurs hôtels.
- RoomType / RoomTypeCategory / RoomTypeOption — type de chambre (Single/Double/Suite), catégorie, options (vue mer, balcon).
- RoomTypeQuota — contingent de chambres négocié manuellement avec l'hôtel pour une occurrence donnée.
- Deck / Cabin / CabinType — pour les croisières en bateau uniquement. SPA
deck-configuratorcôté Vue. - Voyages Croisitour — voyages croisière (flag
isCroisitoursur certains discounts/data). - MealPlan — pension : breakfast, half-board, full-board, all-inclusive, program board (cf.
Domain/Enum/MealPlan.cs).
Suppléments
- Supplement — ligne ad-hoc ajoutée à un booking.
- GlobalSupplement — supplément déclaré globalement (taxe touristique, supplément carburant…) qui se réplique sur les bookings via
GlobalSupplementOccurrenceouGlobalSupplementSeasideDate.BookingGlobalSupplementest la trace par booking.
Bons cadeaux / Gifts
- Gift — bon cadeau à montant libre uniquement (pas de bon par voyage). Émetteur paie via Saferpay/Cembra ou en bureau.
- Envoi email : envoyé automatiquement seulement pour les commandes web/mobile. Pour un bon créé via Horizon back-office, pas d'envoi email auto.
- RemainingValue — solde restant d'un bon utilisé partiellement, reportable sur un futur achat.
- GiftStatus / GiftSendingStatus — état du bon, état d'envoi.
Balnéaires / Seaside
- SeasideDate — rotation datée pour balnéaire, identifiée par (
TravelCategoryId,Date,IsReturn). PlusieursOccurrence(= plusieurs hôtels d'une même destination, ex Costa Brava hôtel X et hôtel Y) partagent la même rotation car quand elles ont le mêmeTravelCategoryId+ mêmeDate. ChampVehicles= véhicules assignés à la rotation. ChampsFirstNightInTheBus/LastNightInTheBus(bool?) = override des flags Travel correspondants (cf. plus haut). - VehicleCapacity / VehicleCapacityReturn (sur Occurrence) — capacités séparées car un client Seaside peut partir à une date X et revenir à une date Y ou Z (séjour 2 ou 3 semaines), avec potentiellement des véhicules différents.
- SeasideVoucher — bon imprimé par Buchard et remis au client à l'embarquement aller, à présenter à l'hôtel à l'arrivée.
- SeasideDate.Billed — flag indiquant que les bookings clients de cette rotation+destination ont été facturés.
Vols Helvetic
- Helvetic — Helvetic Airways, compagnie aérienne. Buchard fait avec eux des vols charter (typiquement Sion ↔ Palma de Majorque PMI).
- Export passagers Helvetic — Excel destiné au check-in Helvetic. Code :
Web/Pages/Occurrences/HelveticListPassengers.cshtml.cs. - Salutation codes Helvetic —
Mr(monsieur adulte),Ms(madame adulte),INF(bébé < 2 ans),CHD(enfant 2-12). Calculés depuis l'âge + civilité (Passenger.Civilitypuis fallbackCustomer.Civility). - TravelFlightCode / BookingPassengerFlightCode — codes de service vol (SSR : Special Service Request, repas, bagages, etc.) attachés à un voyage / passager.
Commentaires / TravelComment
- TravelComment — avis textuel + note (0-5) posté par un client sur un voyage publié. Champs
Author,Comment,Rating?,IsApproved,CustomerId?. Modéré en back-office (Pages/Comments). Légitimement créé viaPOST /api/travels/{id}/comments(API client) avecIsApproved=falseforcé côté serveur — la moyenne d'étoiles d'un voyage (Travel.CommentsAverageRating) ne compte QUE les approuvés. - Réponse Buchard — réponse admin single-level à un
TravelCommentclient. Stockée comme unTravelCommentenfant viaParentCommentId(self-reference, FKRestrict). ToujoursAuthor = "Buchard Voyages"(constanteTravelComment.BuchardReplyAuthorName),IsApproved = trueauto,Rating = null,CustomerId = null. Un seul niveau : on ne répond pas à une réponse. Un seul reply par parent. Cascade delete géré explicitement par le service. Non exposée dans l'API publique (back-office only à ce stade).
Notes & notifications
- Note — annotation textuelle attachable à diverses entités via le mécanisme
NoteTags(Booking, Travel, Customer, Occurrence, LoadingTable, etc.). - Notification — alerte poussée à un utilisateur back-office (cloche dans l'UI).
ERP / Comptabilité
- NAV / Business Central — Microsoft Dynamics NAV (anciennement) / Business Central (nouveau nom). ERP comptable de Buchard. Toutes les factures partent en BC ; la création/MAJ client va en BC ; les paiements postés vont en BC.
- PostedSalesInvoices / PostedSalesInvoiceLines — factures postées NAV (en lecture).
- EcrituresClients / DetailedCustomerLedgerEntries — écritures comptables client BC.
- DimValues — dimensions analytiques BC.
Identifiants techniques utiles
- GlobeId (sur plusieurs entités) — ID dans l'ancien système Globe (migration historique). Toutes les entités importées de Globe ont aussi un flag
Legacy. - WebSiteOldId — ID dans l'ancien site web (migration).
WebSiteOldDbContextest legacy mort.
Contributors
No contributors
Changelog
No recent changes

