SchotzIAD KM Tracker : suivi des trajets kilométriques (Angular + .NET 8)
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.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
using TrajetKmTracker.Api.Models.DTOs;
|
||||
|
||||
namespace TrajetKmTracker.Api.Services;
|
||||
|
||||
/// <summary>
|
||||
/// Logique métier des Montant_Regle (montants effectivement versés, saisis par l'utilisateur)
|
||||
/// et du Montant_Previsionnel (indication de versement à 80% du barème, purement informative).
|
||||
/// </summary>
|
||||
public interface IMontantRegleService
|
||||
{
|
||||
/// <summary>
|
||||
/// Enregistre ou met à jour (upsert) le Montant_Regle pour un couple (année, mois, véhicule).
|
||||
/// S'il existe déjà une ligne pour la même (Annee, Mois, VehiculeId), elle est mise à jour ;
|
||||
/// sinon une nouvelle ligne est insérée (Property 26, Exigences 14.1/14.2/14.3).
|
||||
/// Rejette un montant négatif via <see cref="Exceptions.MontantRegleNegatifException"/> (Exigence 14.4).
|
||||
/// </summary>
|
||||
Task<MontantRegleDto> UpsertMontantRegleAsync(
|
||||
MontantRegleDto dto, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Retourne les Montant_Regle saisis pour une (année, véhicule), triés par mois croissant.
|
||||
/// Destiné au controller et au service de régularisation.
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<MontantRegleDto>> GetMontantsReglesAsync(
|
||||
int annee, int vehiculeId, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Calcule le Montant_Previsionnel indicatif pour un (année, mois, véhicule) :
|
||||
/// 80% du Bareme_Kilometrique plein appliqué au Total_Annuel_Partiel du véhicule
|
||||
/// (somme des distances de l'année pour ce véhicule jusqu'au mois indiqué inclus),
|
||||
/// arrondi à deux décimales (Property 23, Exigences 13.5/13.6).
|
||||
/// Cette valeur est purement informative et n'entre jamais dans la régularisation.
|
||||
/// </summary>
|
||||
Task<MontantPrevisionnelDto> GetMontantPrevisionnelAsync(
|
||||
int annee, int mois, int vehiculeId, CancellationToken cancellationToken = default);
|
||||
}
|
||||
Reference in New Issue
Block a user