Skip to content

feat: configuration par type de vol (remb. km, points, coût, défraiement, visibilité) - #80

Open
laudeco wants to merge 2 commits into
masterfrom
claude/dolibarr-flight-type-config-MADQm
Open

feat: configuration par type de vol (remb. km, points, coût, défraiement, visibilité)#80
laudeco wants to merge 2 commits into
masterfrom
claude/dolibarr-flight-type-config-MADQm

Conversation

@laudeco

@laudeco laudeco commented Jun 8, 2026

Copy link
Copy Markdown
Owner

Résumé

Chaque type de vol (llx_bbc_types) dispose désormais de six champs de configuration administrables, en remplacement des constantes globales qui ne permettaient pas de différencier les types :

Champ Description
remboursement_km Taux de remboursement kilométrique (€/km) utilisé dans les notes de frais
points_pilote Points bonus attribués au pilote par vol (types T1/T2)
cout_pilote Coût facturé au pilote par vol en € (types T3–T7)
defraiement Forfait de défraiement par vol utilisé dans les notes de frais
visible_graphique Afficher/masquer le type dans les graphiques statistiques
visible_tableau Afficher/masquer la colonne du type dans le tableau récapitulatif

Fichiers modifiés

Base de données

  • sql/update_1.13-1.14.sql — migration ALTER TABLE ajoutant les 6 colonnes à llx_bbc_types

Modèle

  • class/bbctypes.class.php — nouvelles propriétés dans Bbctypes et BbctypesLine ; méthodes CRUD (create, fetch, fetchAll, update) mises à jour ; getters ajoutés à BbctypesLine
  • class/missions/FlightMission.php — transporte désormais fk_type pour permettre la résolution des taux par type

Administration

  • admin/vol.php — formulaire de dictionnaire refondu : toute la configuration par type est dans un seul tableau (service, remb. km, points, coût, défraiement, cases à cocher visibilité)

Calcul des notes de frais

  • query/FlightForQuarterAndPilotQueryHandler.php — passe fk_type à FlightMission
  • command/CreateExpenseNoteCommandHandler.php — utilise remboursement_km et defraiement du type de vol ; rétrocompatible (repli sur BBC_FLIGHT_LOG_TAUX_REMB_KM / BBC_FLIGHT_LOG_UNIT_PRICE_MISSION si les champs sont à 0)

Calcul des factures

  • query/BillableFlightQueryHandler.php — utilise points_pilote pour T1/T2 et cout_pilote pour T3–T7 ; rétrocompatible (repli sur BBC_POINTS_BONUS_X / price_ttc du service)

Page de résumé

  • Http/Web/Controller/StatisticalGraphController.php — filtre les types via visible_graphique au lieu de la liste en dur [1, 2, 3, 4, 6]
  • readFlights.php — colonnes du tableau pilotées par visible_tableau ; T1/T2 restent dans la section bonus, les autres types dans la section coût

Plan de test

  • Exécuter la migration update_1.13-1.14.sql sur l'instance de développement
  • Vérifier que le formulaire admin/vol.php affiche et sauvegarde correctement les 6 champs pour chaque type
  • Configurer des valeurs non nulles pour remboursement_km et defraiement sur T1/T2, puis générer une note de frais et vérifier les montants
  • Configurer points_pilote sur T1/T2 et cout_pilote sur T3–T7, puis générer une facture et vérifier les montants
  • Désactiver visible_tableau sur un type (ex. T5) et vérifier que sa colonne disparaît du tableau récapitulatif
  • Désactiver visible_graphique sur un type et vérifier qu'il n'apparaît plus dans le graphique par type
  • Vérifier la rétrocompatibilité : avec tous les nouveaux champs à 0, le comportement doit être identique à l'ancien (repli sur les constantes globales / price_ttc)

https://claude.ai/code/session_01QDCYEKRNnVyGXc42ySPGic


Generated by Claude Code

claude added 2 commits June 8, 2026 08:28
Each flight type in llx_bbc_types now carries six additional fields:
- remboursement_km: per-km reimbursement rate used in expense notes
- points_pilote: bonus points attributed to the pilot per flight
- cout_pilote: cost charged to the pilot per flight (€)
- defraiement: flat allowance per flight used in expense notes
- visible_graphique: whether the type appears in statistical graphs
- visible_tableau: whether the type column appears in the summary table

Changes:
- sql/update_1.13-1.14.sql: migration adding the six columns
- class/bbctypes.class.php: new properties and DB CRUD for Bbctypes & BbctypesLine
- admin/vol.php: dictionary form redesigned to edit all new fields inline per type
- class/missions/FlightMission.php: carries fk_type so per-type rates can be looked up
- query/FlightForQuarterAndPilotQueryHandler.php: passes fk_type to FlightMission
- command/CreateExpenseNoteCommandHandler.php: uses remboursement_km and defraiement
  from the flight type, falling back to global constants for backward compat
- query/BillableFlightQueryHandler.php: uses points_pilote (T1/T2) and cout_pilote
  (T3–T7) from the type, falling back to BBC_POINTS_BONUS_X / service price_ttc
- Http/Web/Controller/StatisticalGraphController.php: uses visible_graphique flag
  instead of the hardcoded [1,2,3,4,6] list
- readFlights.php: summary table columns driven by visible_tableau flag

https://claude.ai/code/session_01QDCYEKRNnVyGXc42ySPGic
Les champs de configuration par type (fkService, remboursement_km,
points_pilote, cout_pilote, defraiement, visible_graphique, visible_tableau)
sont désormais administrés directement depuis le dictionnaire Dolibarr
(Setup > Dictionnaires > Types de vols) via tabfield/tabfieldvalue.

La page admin/vol.php ne conserve que les paramètres globaux :
produit client, client par défaut, points organisateur/instructeur,
compte bancaire, conditions de paiement et e-mails de notification.

https://claude.ai/code/session_01QDCYEKRNnVyGXc42ySPGic
@github-actions github-actions Bot added the core label Jun 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants