Skip to content

Module — Paramétrages globaux (Settings)

Synchronisé avec le code. Mettre à jour à chaque changement structurel.

Rôle

Paramètres globaux applicables à l'ensemble du système : taux de TVA datés, devises, types et conditions d'assurances, paramètres généraux.

Emplacement

  • Pages : src/Web/Pages/SettingVatRates/, SettingCurrencies/, SettingInsurances/, SettingGenerals/
  • Services : SettingVatRateService, SettingCurrencyService, SettingInsuranceService, SettingGeneralService

Entités principales

  • Setting — base abstraite (champs communs : nom, valeur).
  • SettingGeneral — paramètres généraux (par-application). Peut aussi être référencé par Occurrence.SettingGeneralId pour overrider au niveau d'un départ.
  • SettingCurrency — devises supportées et taux de change.
  • SettingVatRate — taux de TVA daté. Toujours résolu par date via SettingVatRateService.GetByDate(date).
  • SettingInsurance — type d'assurance (annulation, multirisque…). Champs Value, IsExternal (assurance externe ne facturée que pour le report client).
  • SettingInsuranceCondition — conditions par assurance (rules de prise en charge).
  • SettingInsuranceType — typologie (linkée par voyage : Travel.SettingInsuranceTypes).
  • SettingType : enum classifiant les Settings.

Règles métier spécifiques

  • TVA datée : à chaque facture, lire le taux applicable à la date du voyage (pas DateTime.Now). Patch fréquent en cas de changement de TVA suisse.
  • SettingInsurance.Value = 0 ⇒ "aucune assurance souscrite" (cas affiché dans Confirmation.liquid).
  • Devise : par défaut CHF. Multi-devises pas activement utilisé (à confirmer).
  • SettingGeneral sur Occurrence : override au niveau du départ (override des paramètres généraux pour ce voyage spécifique).
  • Export des primes d'assurance à payer (Paramètres > Finances > Assurances > Exporter, PassengerInsuranceService.GetByPeriod) : une ligne = une assurance souscrite sur SA réservation, dont la date de départ (Occurrence.Start, pas la date de réservation) tombe dans la période. Filtres : assurance non externe, booking non supprimé, non Legacy, statut dans ValidatingBookingStatus.IsActive. Bornes inclusives : le front envoie les deux dates à 00:00, le service élargit la borne de fin à la fin du dernier jour. Un onglet Excel par palier de prix (GroupBy(Price)).

Points d'attention / pièges

  • Format de la date TVA : SettingVatRate doit avoir des plages contigües. Vérifier qu'aucune date ne tombe dans un trou.
  • Modification d'une assurance : impacte les factures futures uniquement. Les factures déjà émises gardent l'ancienne valeur.
  • Insurance externe : SettingInsurance.SettingInsuranceType.Value == 0 (?) ou IsExternal : à vérifier la sémantique exacte dans le code.

Conventions locales

  • Les Setting* sont rarement édités en run — souvent configurés à l'installation puis stables.

Dépendances

  • ← Tous les modules consomment indirectement (TVA, devises, assurances).
  • billing-payment (taux TVA appliqué).
  • booking (assurances par passager).

Contributors

No contributors

Changelog

No recent changes