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,44 @@
|
||||
using TrajetKmTracker.Api.Models.DTOs;
|
||||
|
||||
namespace TrajetKmTracker.Api.Services;
|
||||
|
||||
/// <summary>
|
||||
/// Calcul des totaux du Panneau_Totaux (jour, mois, Total_Annuel_Partiel) filtrés par véhicule
|
||||
/// et fourniture des données de navigation temporelle (années, mois et jours disponibles).
|
||||
/// </summary>
|
||||
public interface ITotauxService
|
||||
{
|
||||
/// <summary>
|
||||
/// Calcule, pour la <paramref name="date"/> sélectionnée et le véhicule indiqué, les totaux
|
||||
/// kilométriques affichés dans le Panneau_Totaux (Exigences 12.7, 12.8, 12.19) :
|
||||
/// <list type="bullet">
|
||||
/// <item><description>TotalJour : somme des distances des Trajets de la journée.</description></item>
|
||||
/// <item><description>TotalMois : somme des distances des Trajets du mois de la date.</description></item>
|
||||
/// <item><description>TotalAnnuelPartiel : cumul de l'année jusqu'au mois de la date inclus,
|
||||
/// à l'exclusion des mois strictement postérieurs (Property 17).</description></item>
|
||||
/// </list>
|
||||
/// Les distances nulles sont comptées comme 0 et tous les totaux sont arrondis à 2 décimales.
|
||||
/// Seuls les Trajets du véhicule sont additionnés (Property 21).
|
||||
/// Si <paramref name="vehiculeId"/> vaut <c>null</c>, le Véhicule_Courant est utilisé
|
||||
/// (via <see cref="IVehiculeService.GetVehiculeCourantAsync"/>).
|
||||
/// </summary>
|
||||
Task<TotauxDto> GetTotauxAsync(DateOnly date, int? vehiculeId = null, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Retourne la liste des années comportant au moins un Trajet, à laquelle est ajoutée
|
||||
/// l'année courante si elle n'y figure pas déjà (Exigence 12.15). Liste triée croissante.
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<int>> GetAnneesDisponiblesAsync(CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Retourne la liste des mois (1..12) de l'année <paramref name="annee"/> comportant au moins
|
||||
/// un Trajet (Exigence 12.16). Liste triée croissante.
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<int>> GetMoisDisponiblesAsync(int annee, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Retourne la liste des jours du mois <paramref name="mois"/> de l'année <paramref name="annee"/>
|
||||
/// comportant au moins un Trajet (Exigence 12.16). Liste triée croissante.
|
||||
/// </summary>
|
||||
Task<IReadOnlyList<int>> GetJoursDisponiblesAsync(int annee, int mois, CancellationToken cancellationToken = default);
|
||||
}
|
||||
Reference in New Issue
Block a user