diff --git a/Wonky.Client/Components/AppVersion.razor b/Wonky.Client/Components/AppVersion.razor index 3fc9f6ff..db7ba224 100644 --- a/Wonky.Client/Components/AppVersion.razor +++ b/Wonky.Client/Components/AppVersion.razor @@ -17,7 +17,7 @@ @Name @Version@if(IsBeta){-beta} @code { - private const string Version = "0.2.42"; + private const string Version = "0.2.43"; private const string Name = "wwo"; private const bool IsBeta = true; } diff --git a/Wonky.Client/Pages/CrmActivityCreate.razor.cs b/Wonky.Client/Pages/CrmActivityCreate.razor.cs index d4772533..d5b66330 100644 --- a/Wonky.Client/Pages/CrmActivityCreate.razor.cs +++ b/Wonky.Client/Pages/CrmActivityCreate.razor.cs @@ -85,6 +85,7 @@ public partial class CrmActivityCreate : IDisposable DraftContext = new EditContext(_poDraft); DraftContext.OnFieldChanged += HandleFieldChanged; + DraftContext.OnValidationStateChanged += ValidationChanged; // set up identification _poDraft.SalesHeadId = ""; diff --git a/Wonky.Client/Pages/SalesReport.razor b/Wonky.Client/Pages/SalesReport.razor index 5ec07250..7028954c 100644 --- a/Wonky.Client/Pages/SalesReport.razor +++ b/Wonky.Client/Pages/SalesReport.razor @@ -20,9 +20,9 @@ @page "/sales-report"

Dagsrapport

- +
- +
- +
- +
+
+ +
+
+
+
Km regnskab
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+
Besøg
@if (Activities != null) { -
+
@foreach (var activity in Activities) {
diff --git a/Wonky.Client/Pages/SalesReport.razor.cs b/Wonky.Client/Pages/SalesReport.razor.cs index 1c867e5f..eca19200 100644 --- a/Wonky.Client/Pages/SalesReport.razor.cs +++ b/Wonky.Client/Pages/SalesReport.razor.cs @@ -32,20 +32,57 @@ public partial class SalesReport private DateTime _reportDate; private EditContext _editContext { get; set; } private SalesReportDto _reportDto = new(); + private Preferences _prefs { get; set; } = new(); + private bool _formInvalid = true; private List? Activities { get; set; } = new(); - protected override void OnInitialized() + protected override async Task OnInitializedAsync() { - _reportDate = DateTime.Now; + Interceptor.RegisterEvent(); + Interceptor.RegisterBeforeSendEvent(); + _editContext = new EditContext(_reportDate); + _editContext.OnFieldChanged += HandleFieldChanged; + _editContext.OnValidationStateChanged += ValidationChanged; + + _prefs = await UserPrefs.GetPreferences(); + _reportDate = string.IsNullOrWhiteSpace(_prefs.WorkDate) + ? DateTime.Now + : DateTime.Parse(_prefs.WorkDate); + await UserPrefs.SetWorkDate(_reportDate).ConfigureAwait(true); } + private void HandleFieldChanged(object sender, FieldChangedEventArgs e) + { + _formInvalid = !_editContext.Validate(); + StateHasChanged(); + } + + private void ValidationChanged(object sender, ValidationStateChangedEventArgs e) + { + _formInvalid = false; + _editContext.OnFieldChanged -= HandleFieldChanged; + _editContext = new EditContext(_reportDto); + _editContext.OnFieldChanged += HandleFieldChanged; + _editContext.OnValidationStateChanged += ValidationChanged; + } private void CheckDayType() { } private async Task GetActivities() { - Activities = await ActivityRepo.GetActivities($"{_reportDate:yyyy-MM-dd}").ConfigureAwait(true); + Activities = null; + await UserPrefs.SetWorkDate(_reportDate).ConfigureAwait(true); + Activities = await ActivityRepo + .GetActivities($"{_reportDate:yyyy-MM-dd}") + .ConfigureAwait(true); + } + + public void Dispose() + { + Interceptor.DisposeEvent(); + _editContext.OnFieldChanged -= HandleFieldChanged; + _editContext.OnValidationStateChanged -= ValidationChanged; } } \ No newline at end of file diff --git a/Wonky.Entity/DTO/SalesReportDto.cs b/Wonky.Entity/DTO/SalesReportDto.cs index 00c55a19..237dc564 100644 --- a/Wonky.Entity/DTO/SalesReportDto.cs +++ b/Wonky.Entity/DTO/SalesReportDto.cs @@ -1,13 +1,15 @@ +using System.ComponentModel.DataAnnotations; + namespace Wonky.Entity.DTO; public class SalesReportDto { - public string ActivityDate { get; set; } = ""; - public string DayTypeEnum { get; set; } = ""; - public string Comment { get; set; } = ""; + [Required(ErrorMessage = "Dato skal angives")] public string ActivityDate { get; set; } = ""; + [Required(ErrorMessage = "Dagtype skal angives")]public string DayTypeEnum { get; set; } = ""; + [MaxLength(128, ErrorMessage = "Du kan højst bruge 128 tegn")]public string Comment { get; set; } = ""; // - public long KmStart { get; set; } - public long KmFinished { get; set; } + public long KmMorning { get; set; } + public long KmEvening { get; set; } public int Distance { get; set; } public int DistancePrivate { get; set; } //