Application complète de saisie et de suivi des trajets kilométriques avec calcul de distance routière (OpenRouteService), barème kilométrique, résumés et régularisation annuelle. Backend (ASP.NET Core .NET 8, EF Core, SQLite) : - Trajets (CRUD, réordonnancement, insertion), calcul de distance ORS avec fallback Haversine, géométrie d'itinéraire stockée par trajet, recalcul en masse. - Profil, véhicules (avec dénomination), carnet d'adresses nommées, cache d'adresses. - Barème kilométrique : tranches multiples par puissance fiscale, borne max exclusive avec 'illimité' (KmMax nullable), coefficient à 3 décimales, recopie du dernier barème connu. - Résumés mensuel/annuel, montants réglés, régularisation, export PDF. Frontend (Angular 22, zoneless + signals) : - Consultation par jour, navigation temporelle synchronisée, carte Leaflet, formulaire de trajet (adresses nommées, domicile, autocomplétion BAN). - Détection de changement zoneless (indépendante de zone.js). Hébergement : Docker Compose (nginx + backend), scripts run-dev.sh / run-docker.sh.
28 lines
1.4 KiB
C#
28 lines
1.4 KiB
C#
using TrajetKmTracker.Api.Models.DTOs;
|
||
|
||
namespace TrajetKmTracker.Api.Services;
|
||
|
||
/// <summary>
|
||
/// Logique métier de la régularisation annuelle (barème plein, 100%).
|
||
///
|
||
/// Contrairement au Montant_Previsionnel (80% indicatif, hors régularisation), la régularisation
|
||
/// applique le Bareme_Kilometrique plein au total kilométrique annuel COMPLET du véhicule :
|
||
/// <list type="bullet">
|
||
/// <item>Montant_Reel = total_km_annuel × Coefficient + Base de la tranche déterminée par ce
|
||
/// total annuel (Exigence 14.5, Property 25/27).</item>
|
||
/// <item>Frais_Reel_Mensuel[m] = km_du_mois[m] × Coefficient de la tranche annuelle, de sorte que
|
||
/// la somme des douze Frais_Reel_Mensuel + la Base de la tranche = Montant_Reel (Exigence 14.6).</item>
|
||
/// <item>Regularisation = Montant_Reel − total des Montant_Regle de l'année (Exigence 14.7).</item>
|
||
/// </list>
|
||
/// </summary>
|
||
public interface IRemboursementService
|
||
{
|
||
/// <summary>
|
||
/// Construit la synthèse annuelle de régularisation pour un couple (année, véhicule) :
|
||
/// identité de la tranche annuelle applicable, 12 lignes mensuelles
|
||
/// (<see cref="LigneSyntheseMoisDto"/>) et totaux (km annuel, réglé, Montant_Reel, Regularisation).
|
||
/// </summary>
|
||
Task<RegularisationAnnuelleDto> GetRegularisationAnnuelleAsync(
|
||
int annee, int vehiculeId, CancellationToken cancellationToken = default);
|
||
}
|