feat: configuration par type de vol (remb. km, points, coût, défraiement, visibilité) - #80
Open
laudeco wants to merge 2 commits into
Open
feat: configuration par type de vol (remb. km, points, coût, défraiement, visibilité)#80laudeco wants to merge 2 commits into
laudeco wants to merge 2 commits into
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 :remboursement_kmpoints_pilotecout_pilotedefraiementvisible_graphiquevisible_tableauFichiers modifiés
Base de données
sql/update_1.13-1.14.sql— migrationALTER TABLEajoutant les 6 colonnes àllx_bbc_typesModèle
class/bbctypes.class.php— nouvelles propriétés dansBbctypesetBbctypesLine; méthodes CRUD (create,fetch,fetchAll,update) mises à jour ; getters ajoutés àBbctypesLineclass/missions/FlightMission.php— transporte désormaisfk_typepour permettre la résolution des taux par typeAdministration
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— passefk_typeàFlightMissioncommand/CreateExpenseNoteCommandHandler.php— utiliseremboursement_kmetdefraiementdu type de vol ; rétrocompatible (repli surBBC_FLIGHT_LOG_TAUX_REMB_KM/BBC_FLIGHT_LOG_UNIT_PRICE_MISSIONsi les champs sont à 0)Calcul des factures
query/BillableFlightQueryHandler.php— utilisepoints_pilotepour T1/T2 etcout_pilotepour T3–T7 ; rétrocompatible (repli surBBC_POINTS_BONUS_X/price_ttcdu service)Page de résumé
Http/Web/Controller/StatisticalGraphController.php— filtre les types viavisible_graphiqueau lieu de la liste en dur[1, 2, 3, 4, 6]readFlights.php— colonnes du tableau pilotées parvisible_tableau; T1/T2 restent dans la section bonus, les autres types dans la section coûtPlan de test
update_1.13-1.14.sqlsur l'instance de développementadmin/vol.phpaffiche et sauvegarde correctement les 6 champs pour chaque typeremboursement_kmetdefraiementsur T1/T2, puis générer une note de frais et vérifier les montantspoints_pilotesur T1/T2 etcout_pilotesur T3–T7, puis générer une facture et vérifier les montantsvisible_tableausur un type (ex. T5) et vérifier que sa colonne disparaît du tableau récapitulatifvisible_graphiquesur un type et vérifier qu'il n'apparaît plus dans le graphique par typeprice_ttc)https://claude.ai/code/session_01QDCYEKRNnVyGXc42ySPGic
Generated by Claude Code