@if (_reportExist)
@@ -41,7 +44,7 @@
@if (ReportItemListView.ReportItems.Any())
{
-
+
}
else
{
diff --git a/Wonky.Client/Pages/ReportNewPageAdvisor.razor.cs b/Wonky.Client/Pages/ReportNewPageAdvisor.razor.cs
index 6b7a3494..bbff187d 100644
--- a/Wonky.Client/Pages/ReportNewPageAdvisor.razor.cs
+++ b/Wonky.Client/Pages/ReportNewPageAdvisor.razor.cs
@@ -45,7 +45,7 @@ public partial class ReportNewPageAdvisor : IDisposable
private Preferences _prefs { get; set; } = new();
private bool _formInvalid = true;
private bool _noFigures = true;
- private bool _working = false;
+ private bool _working;
private DateTime _workDate { get; set; } = DateTime.Now;
private TimeOnly _checkIn { get; set; } = new(12, 0);
private TimeOnly _checkOut { get; set; } = new(12, 0);
@@ -54,7 +54,6 @@ public partial class ReportNewPageAdvisor : IDisposable
protected override async Task OnInitializedAsync()
{
- _working = true;
_interceptor.RegisterEvent();
_interceptor.RegisterBeforeSendEvent();
_editContext = new EditContext(_report);
@@ -65,8 +64,6 @@ public partial class ReportNewPageAdvisor : IDisposable
if (!string.IsNullOrWhiteSpace(_prefs.WorkDate))
_workDate = DateTime.Parse(_prefs.WorkDate);
- _working = false;
-
if(await _reportRepo.ReportExist(_prefs.WorkDate))
_navigator.NavigateTo($"/sales-reports/view/{_prefs.WorkDate}");
@@ -103,6 +100,12 @@ public partial class ReportNewPageAdvisor : IDisposable
return;
}
+ if (_report.Figures.KmMorning > _report.Figures.KmEvening)
+ {
+ _toast.ShowError("Km udregning er negativ - kontroller venligst km tal");
+ return;
+ }
+
_working = true;
DateTime checkIn;
@@ -130,7 +133,7 @@ public partial class ReportNewPageAdvisor : IDisposable
_logger.LogDebug("_report => {report}", JsonSerializer.Serialize(_report));
var result = await _reportRepo.PostReport($"{_workDate:yyyy-MM-dd}", _report);
-
+ await _userPrefs.SetKmMorning(0);
_toast.ShowInfo($"Rapport oprettet {_workDate}");
_working = false;
@@ -173,6 +176,7 @@ public partial class ReportNewPageAdvisor : IDisposable
_report.Figures = data.ReportData;
_init = data.ReportData;
_activities = data.ReportItems;
+ _report.Figures.KmMorning = _prefs.KmMorning;
_working = false;
}
diff --git a/Wonky.Client/Pages/ReportViewPageAdvisor.razor.cs b/Wonky.Client/Pages/ReportViewPageAdvisor.razor.cs
index b8f5ed87..9feba4b8 100644
--- a/Wonky.Client/Pages/ReportViewPageAdvisor.razor.cs
+++ b/Wonky.Client/Pages/ReportViewPageAdvisor.razor.cs
@@ -43,6 +43,8 @@ public partial class ReportViewPageAdvisor
if(workDate != ReportDate)
_navigator.NavigateTo($"/sales-reports/view/{workDate}");
_report = await _reportRepo.GetReport(workDate);
- _items = _report.ReportItems.Where(x => x.OrderAmount > 0).ToList();
+
+ _items = _report.ReportItems.Where(x => x.Lines.Any()).ToList();
+
}
}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/ReportViewPageOffice.razor.cs b/Wonky.Client/Pages/ReportViewPageOffice.razor.cs
index 0e6f8707..f5d5f52f 100644
--- a/Wonky.Client/Pages/ReportViewPageOffice.razor.cs
+++ b/Wonky.Client/Pages/ReportViewPageOffice.razor.cs
@@ -80,7 +80,8 @@ public partial class ReportViewPageOffice : IDisposable
_items = new List
();
Report = await GetUserReport(UserId, workDate);
- _items = Report.ReportItems.Where(x => x.OrderAmount > 0).ToList();
+ //_items = Report.ReportItems.Where(x => x.OrderAmount > 0).ToList();
+ _items = Report.ReportItems.Where(x => x.Lines.Any()).ToList();
}
///
diff --git a/Wonky.Client/Services/AuthenticationService.cs b/Wonky.Client/Services/AuthenticationService.cs
index 230b8037..2c65f6eb 100644
--- a/Wonky.Client/Services/AuthenticationService.cs
+++ b/Wonky.Client/Services/AuthenticationService.cs
@@ -33,15 +33,17 @@ namespace Wonky.Client.Services
private readonly AuthenticationStateProvider _authStateProvider;
private readonly ILocalStorageService _localStorage;
private readonly IOptions _apiConfig;
+ private readonly ILogger _logger;
public AuthenticationService(HttpClient client,
AuthenticationStateProvider authStateProvider,
- ILocalStorageService localStorage, IOptions apiConfig)
+ ILocalStorageService localStorage, IOptions apiConfig, ILogger logger)
{
_client = client;
_authStateProvider = authStateProvider;
_localStorage = localStorage;
_apiConfig = apiConfig;
+ _logger = logger;
}
public async Task Login(CredentialDto credentials)
@@ -111,13 +113,17 @@ namespace Wonky.Client.Services
{
((AuthStateProvider)_authStateProvider).NotifyUserLogout();
_client.DefaultRequestHeaders.Authorization = null;
- await _localStorage.ClearAsync();
+ await _localStorage.RemoveItemsAsync(new List {"_xa", "_xe", "_xr", "_xu"});
+
}
public async Task UserInfo(bool write = false)
{
var infoResponse = await _client.GetAsync(_apiConfig.Value.CrmUser);
var infoContent = await infoResponse.Content.ReadAsStringAsync();
+
+ _logger.LogDebug("UserInfo <= {}", infoContent);
+
var userInfo = JsonSerializer.Deserialize(infoContent, _options);
if(write)
await _localStorage.SetItemAsync("_xu", userInfo);
diff --git a/Wonky.Client/Services/UserPreferenceService.cs b/Wonky.Client/Services/UserPreferenceService.cs
index 47ac9f11..f5f8860d 100644
--- a/Wonky.Client/Services/UserPreferenceService.cs
+++ b/Wonky.Client/Services/UserPreferenceService.cs
@@ -25,6 +25,7 @@ public record Preferences
public string? ItemSort { get; set; } = "name";
public string PageSize { get; set; } = "10";
public string WorkDate { get; set; } = "";
+ public int KmMorning { get; set; }
}
public class UserPreferenceService
{
@@ -34,6 +35,18 @@ public class UserPreferenceService
{
_localStorageService = localStorageService;
}
+
+ public async Task SetKmMorning(int kmMorning)
+ {
+ var preferences = await GetPreferences();
+ var newPreferences = preferences
+ with
+ {
+ KmMorning = kmMorning
+ };
+ await _localStorageService.SetItemAsync("preferences", newPreferences);
+ OnChange?.Invoke(newPreferences);
+ }
public async Task SetCompanyFilterPhrase(string filterPhrase)
{
@@ -46,6 +59,7 @@ public class UserPreferenceService
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
+
public async Task SetWorkDate(DateTime workDate)
{
var preferences = await GetPreferences();
@@ -57,6 +71,7 @@ public class UserPreferenceService
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
+
public async Task SetCompanySearch(string companySearch)
{
var preferences = await GetPreferences();
@@ -92,6 +107,7 @@ public class UserPreferenceService
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
+
public async Task SetPageSize(string pageSize)
{
var preferences = await GetPreferences();
@@ -100,6 +116,7 @@ public class UserPreferenceService
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
+
public async Task GetPreferences()
{
return await _localStorageService.GetItemAsync("preferences").ConfigureAwait(true)
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
index 6b76ca6d..d8c09d21 100644
--- a/Wonky.Client/wwwroot/appsettings.json
+++ b/Wonky.Client/wwwroot/appsettings.json
@@ -1,9 +1,9 @@
{
"appInfo": {
"name": "Wonky Client",
- "version": "0.10.125",
- "rc": true,
- "sandBox": false,
+ "version": "0.11.30",
+ "rc": false,
+ "sandBox": true,
"image": "grumpy-coder.png"
},
"apiConfig": {
diff --git a/Wonky.Client/wwwroot/index.html b/Wonky.Client/wwwroot/index.html
index c47f9adf..9101c358 100644
--- a/Wonky.Client/wwwroot/index.html
+++ b/Wonky.Client/wwwroot/index.html
@@ -9,7 +9,7 @@
-
+
diff --git a/Wonky.Entity/DTO/UserInfoDto.cs b/Wonky.Entity/DTO/UserInfoDto.cs
index 22bf08b3..ad50ffa9 100644
--- a/Wonky.Entity/DTO/UserInfoDto.cs
+++ b/Wonky.Entity/DTO/UserInfoDto.cs
@@ -13,6 +13,7 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
+using System.Collections.Concurrent;
using System.ComponentModel.DataAnnotations;
namespace Wonky.Entity.DTO;
@@ -61,15 +62,20 @@ public class UserInfoDto
public string Advisor { get; set; } = "";
///
- /// Country name
+ /// User Id
///
- public string CountryName { get; set; } = "";
+ public string UserId { get; set; } = "";
///
/// Lockout flag
///
public bool LockoutEnabled { get; set; }
+ ///
+ /// Country name
+ ///
+ public string CountryName { get; set; } = "";
+
///
/// Email confirmed flag
///
@@ -84,9 +90,12 @@ public class UserInfoDto
/// Admin flag
///
public bool IsAdmin { get; set; }
-
- ///
- /// User Id
- ///
- public string UserId { get; set; } = "";
+
+ public bool IsEDoc { get; set; }
+ public bool IsEShop { get; set; }
+ public bool IsSupervisor { get; set; }
+ public bool IsOffice { get; set; }
+ public bool IsWarehouse { get; set; }
+ public string Roles { get; set; } = "";
+ public string ReferenceId { get; set; } = "";
}
\ No newline at end of file
diff --git a/Wonky.Entity/Views/UserInfoView.cs b/Wonky.Entity/Views/UserInfoView.cs
index ed370f64..394118c1 100644
--- a/Wonky.Entity/Views/UserInfoView.cs
+++ b/Wonky.Entity/Views/UserInfoView.cs
@@ -21,7 +21,7 @@ public class UserInfoView
{
[JsonPropertyName("id")] public string Id { get; set; } = "";
[JsonPropertyName("advisor")] public string Advisor { get; set; } = "";
- [JsonPropertyName("companyId")] public string CrmCompanyKey { get; set; } = "";
+ [JsonPropertyName("companyId")] public string ReferenceId { get; set; } = "";
[JsonPropertyName("countryCode")] public string CountryCode { get; set; } = "";
[JsonPropertyName("countryName")] public string CountryName { get; set; } = "";
[JsonPropertyName("email")] public string Email { get; set; } = "";