Skip to content

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, enum Domain/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 + collection TravelRanges. 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 + variantes OneWay), son Status (Published/Cancelled). Code : Domain/Entities/Occurrence.cs.
  • TravelOccurrence — table de jointure N-N entre Travel et Occurrence avec flag IsPriority (= "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). Porte TripType, 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).
  • CivilityMadam / Sir / Other (string). Stocké en string sur Passenger et Customer.
  • 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 statuts Confirmed (acompte) vs Billed (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.
  • InvoiceStatusNone, 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 sur Enabled quand 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/L 3010 (privés) / 3902 (privés remise) / 3911 (agences remise).
    • PinkAreazone 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é (groupe Z-ROSE). Comptes G/L 3011 (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 que PinkArea (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 InvoiceItem séparé sur les factures Confirmation / Balance / Cancellation des voyages PinkArea, 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 de Invoice.Total.
  • SettingVatRate — taux TVA daté (table SettingVatRate). Résolu par _settingVatRateService.GetByDate(travelDate). Toujours passer la date du voyage, pas DateTime.Now.

Paiement / Payment

  • Payment — encaissement. PaymentType indique 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.
  • SwissBillingDÉ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. CustomerType parmi Private, 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.PaymentType stocke 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.CleanGuestCustomers si 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 pt gagné par CHF dépensé (×2 sur mobile), 10 pts = 1 CHF de réduction. Détail : .claude/docs/modules/loyalty-points.md.
  • LoyaltyTransaction — ligne du grand livre des points (table append-only). Points signé : > 0 crédit (gain), < 0 débit (utilisation / expiration / annulation). TransactionTypeLoyaltyTransactionType (crédits : BookingPurchase, MobileAppDownload, ClubMembershipJoin, BookingRefund, ManualCreditAdjustment, AccountCreation dé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 via Customer.LoyaltyPoints.
  • Points en attente — crédits non expirés mais pas encore valides (ValidFrom dans le futur, typiquement points d'un voyage pas encore terminé). Exposés via Customer.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) ; seul None actif (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/Transfer flag = 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. Flag Seaside : 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é VehicleType qui est la catégorie (ex: car 44 places).

Hébergement / Accommodation

  • Accommodation — hôtel ou logement. Champs ChildMin/ChildMax, JuniorMin/JuniorMax, AdultMin dé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-configurator côté Vue.
  • Voyages Croisitour — voyages croisière (flag isCroisitour sur 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 GlobalSupplementOccurrence ou GlobalSupplementSeasideDate. BookingGlobalSupplement est 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). Plusieurs Occurrence (= 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ême TravelCategoryId + même Date. Champ Vehicles = véhicules assignés à la rotation. Champs FirstNightInTheBus / 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 HelveticMr (monsieur adulte), Ms (madame adulte), INF (bébé < 2 ans), CHD (enfant 2-12). Calculés depuis l'âge + civilité (Passenger.Civility puis fallback Customer.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éé via POST /api/travels/{id}/comments (API client) avec IsApproved=false forcé 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 TravelComment client. Stockée comme un TravelComment enfant via ParentCommentId (self-reference, FK Restrict). Toujours Author = "Buchard Voyages" (constante TravelComment.BuchardReplyAuthorName), IsApproved = true auto, 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). WebSiteOldDbContext est legacy mort.

Contributors

No contributors

Changelog

No recent changes