diff --git a/Wonky.Client/Components/Home.razor.cs b/Wonky.Client/Components/Home.razor.cs
index b87ed01f..a5f76c55 100644
--- a/Wonky.Client/Components/Home.razor.cs
+++ b/Wonky.Client/Components/Home.razor.cs
@@ -25,6 +25,7 @@ using Wonky.Client.Services;
using Wonky.Client.Shared;
using Wonky.Entity.DTO;
using Wonky.Entity.Models;
+using Wonky.Entity.Views;
namespace Wonky.Client.Components;
public partial class Home : IDisposable
@@ -36,7 +37,7 @@ public partial class Home : IDisposable
[Inject] private NavigationManager Navigator { get; set; }
[Inject] private IActivityHttpRepository ActivityRepo { get; set; }
[Inject] private IToastService _toast { get; set; }
- private List Activities { get; set; }
+ private NgActivityListView _view { get; set; }
private Preferences _prefs { get; set; } = new();
private string _workDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
@@ -56,8 +57,8 @@ public partial class Home : IDisposable
{
_toast.ShowInfo("Vent nogle sekunder for data");
_workDate = workDate;
- Activities = new List();
- Activities = await ActivityRepo.GetActivities(workDate);
+ _view = new NgActivityListView();
+ _view = await ActivityRepo.GetActivities(workDate);
}
public void Dispose()
diff --git a/Wonky.Client/HttpRepository/ActivityHttpRepository.cs b/Wonky.Client/HttpRepository/ActivityHttpRepository.cs
index 648303b6..bcc964c1 100644
--- a/Wonky.Client/HttpRepository/ActivityHttpRepository.cs
+++ b/Wonky.Client/HttpRepository/ActivityHttpRepository.cs
@@ -54,15 +54,14 @@ public class ActivityHttpRepository : IActivityHttpRepository
_apiConfig = configuration.Value;
}
- public async Task?> GetActivities(string activityDate)
+ public async Task GetActivities(string activityDate)
{
var response = await _client
.GetAsync($"{_apiConfig.ActivityEndpoint}/date/{activityDate}");
var content = await response.Content.ReadAsStringAsync();
- _logger.LogInformation("GetActivities => {content}", content);
return string.IsNullOrWhiteSpace(content)
- ? new List()
- : JsonSerializer.Deserialize>(content, _options);
+ ? new NgActivityListView()
+ : JsonSerializer.Deserialize(content, _options);
}
public async Task> GetActivityPaged(ActivityPagingParams pagingParameters)
{
diff --git a/Wonky.Client/HttpRepository/IActivityHttpRepository.cs b/Wonky.Client/HttpRepository/IActivityHttpRepository.cs
index fa052978..ccb9be6b 100644
--- a/Wonky.Client/HttpRepository/IActivityHttpRepository.cs
+++ b/Wonky.Client/HttpRepository/IActivityHttpRepository.cs
@@ -28,5 +28,5 @@ public interface IActivityHttpRepository
Task GetActivity(string id);
Task CreateActivity(ActivityDto model);
Task AcceptOffer(string id);
- Task?> GetActivities(string activityDate);
+ Task GetActivities(string activityDate);
}
\ No newline at end of file
diff --git a/Wonky.Client/HttpRepository/IReportHttpRepository.cs b/Wonky.Client/HttpRepository/IReportHttpRepository.cs
index 7fc01dda..bb75ba06 100644
--- a/Wonky.Client/HttpRepository/IReportHttpRepository.cs
+++ b/Wonky.Client/HttpRepository/IReportHttpRepository.cs
@@ -6,6 +6,7 @@ namespace Wonky.Client.HttpRepository;
public interface IReportHttpRepository
{
+ Task ReportExist(string workDate);
Task GetReport(string workDate);
Task InitializeReportData(string workDate);
Task PostReport(string workDate, ReportDto reportDto);
diff --git a/Wonky.Client/HttpRepository/ReportHttpRepository.cs b/Wonky.Client/HttpRepository/ReportHttpRepository.cs
index 7af4e185..1cc84d3d 100644
--- a/Wonky.Client/HttpRepository/ReportHttpRepository.cs
+++ b/Wonky.Client/HttpRepository/ReportHttpRepository.cs
@@ -30,6 +30,14 @@ public class ReportHttpRepository :IReportHttpRepository
_apiConfig = configuration.Value;
}
+ public async Task ReportExist(string workDate)
+ {
+ var result =
+ await _client
+ .GetFromJsonAsync($"{_apiConfig.ReportEndpoint}/exist/{workDate}");
+ return result.ReportClosed || true;
+ }
+
public async Task GetReport(string workDate)
{
return await _client.GetFromJsonAsync($"{_apiConfig.ReportEndpoint}/{workDate}");
diff --git a/Wonky.Client/Pages/ActivityCreate.razor b/Wonky.Client/Pages/ActivityCreate.razor
index 79e56f8e..db8dc523 100644
--- a/Wonky.Client/Pages/ActivityCreate.razor
+++ b/Wonky.Client/Pages/ActivityCreate.razor
@@ -28,6 +28,16 @@
+@if (_reportClosdd)
+{
+
+
+ Der kan ikke oprettes aktiviteter for den valgte dato
+
+
+}
+else
+{
@if (DraftContext != null)
{
@@ -176,8 +186,10 @@
@rate.Quantity
@rate.Rate
-
+
}
@@ -366,4 +378,5 @@
+}
}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/ActivityCreate.razor.cs b/Wonky.Client/Pages/ActivityCreate.razor.cs
index efd178ec..a45e878a 100644
--- a/Wonky.Client/Pages/ActivityCreate.razor.cs
+++ b/Wonky.Client/Pages/ActivityCreate.razor.cs
@@ -33,15 +33,16 @@ namespace Wonky.Client.Pages;
public partial class ActivityCreate : IDisposable
{
// todo: prevent creating activity for workDate with closed report
- [Inject] public ILogger _logger { get; set; }
- [Inject] public IToastService ToastService { get; set; }
- [Inject] public NavigationManager NavigationManager { get; set; }
- [Inject] public ILocalStorageService StorageService { get; set; }
- [Inject] private ISalesItemHttpRepository ItemRepo { get; set; }
- [Inject] private ICompanyHttpRepository CompanyRepo { get; set; }
- [Inject] private HttpInterceptorService Interceptor { get; set; }
- [Inject] private UserPreferenceService UserPrefs { get; set; }
- [Inject] private IActivityHttpRepository ActivityRepo { get; set; }
+ [Inject] private ILogger _logger { get; set; }
+ [Inject] private IToastService _toast { get; set; }
+ [Inject] private NavigationManager _navigator { get; set; }
+ [Inject] private ILocalStorageService _storage { get; set; }
+ [Inject] private ISalesItemHttpRepository _itemRepo { get; set; }
+ [Inject] private ICompanyHttpRepository _companyRepo { get; set; }
+ [Inject] private HttpInterceptorService _interceptor { get; set; }
+ [Inject] private UserPreferenceService _userPrefs { get; set; }
+ [Inject] private IActivityHttpRepository _activityRepo { get; set; }
+ [Inject] private IReportHttpRepository _reportRepo { get; set; }
[CascadingParameter] DraftStateProvider DraftStateProvider { get; set; }
[Parameter] public string CompanyId { get; set; }
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
@@ -67,28 +68,31 @@ public partial class ActivityCreate : IDisposable
private bool InvalidStatusType { get; set; } = true;
private bool InvalidActivity { get; set; } = true;
private bool InvalidCanvas { get; set; } = true;
+ private bool _reportClosdd { get; set; } = false;
private UserInfoView Ux { get; set; } = new();
private DateTime _workDate { get; set; } = DateTime.Now;
protected override async Task OnInitializedAsync()
{
- Interceptor.RegisterEvent();
- Interceptor.RegisterBeforeSendEvent();
+ _interceptor.RegisterEvent();
+ _interceptor.RegisterBeforeSendEvent();
- _prefs = await UserPrefs.GetPreferences();
+ _prefs = await _userPrefs.GetPreferences();
if (!string.IsNullOrWhiteSpace(_prefs.WorkDate))
_workDate = DateTime.Parse(_prefs.WorkDate);
_poDraft.ActivityDate = $"{_workDate:yyyy-MM-dd}" ;
-
+ // check if report is closed
+ _reportClosdd = await _reportRepo.ReportExist(_poDraft.ActivityDate);
+
_paging.SearchColumn = _prefs.ItemSearch ?? "name";
_paging.PageSize = Convert.ToInt32(_prefs.PageSize);
await GetSalesItems();
- Ux = await StorageService.GetItemAsync("_xu");
- NgCompany = await CompanyRepo.GetCompanyById(CompanyId);
+ Ux = await _storage.GetItemAsync("_xu");
+ NgCompany = await _companyRepo.GetCompanyById(CompanyId);
// set up identification
_poDraft.CompanyId = NgCompany.CompanyId;
@@ -163,11 +167,11 @@ public partial class ActivityCreate : IDisposable
}
_poDraft.Lines = lines;
- await StorageService.SetItemAsync(CompanyId, _poDraft);
+ await _storage.SetItemAsync(CompanyId, _poDraft);
Console.WriteLine(JsonSerializer.Serialize(_poDraft));
- var result = await ActivityRepo.CreateActivity(_poDraft);
- ToastService.ShowSuccess($"{result.Message}.");
- NavigationManager.NavigateTo($"/companies");
+ var result = await _activityRepo.CreateActivity(_poDraft);
+ _toast.ShowSuccess($"{result.Message}.");
+ _navigator.NavigateTo($"/companies");
}
private void CheckActivity()
@@ -261,7 +265,7 @@ public partial class ActivityCreate : IDisposable
private async Task GetSalesItems()
{
- var response = await ItemRepo.GetSalesItemsPaged(_paging);
+ var response = await _itemRepo.GetSalesItemsPaged(_paging);
SalesItems = response.Items!;
MetaData = response.MetaData;
}
@@ -286,7 +290,7 @@ public partial class ActivityCreate : IDisposable
private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
{
if (string.IsNullOrEmpty(_poDraft.ActivityTypeEnum))
- ToastService.ShowWarning("Aktivitet type kan ikke være tom");
+ _toast.ShowWarning("Aktivitet type kan ikke være tom");
_poFormInvalid = false;
@@ -298,7 +302,7 @@ public partial class ActivityCreate : IDisposable
public void Dispose()
{
- Interceptor.DisposeEvent();
+ _interceptor.DisposeEvent();
DraftContext.OnFieldChanged -= HandleFieldChanged;
DraftContext.OnValidationStateChanged -= ValidationChanged;
}
diff --git a/Wonky.Client/Pages/Index.razor b/Wonky.Client/Pages/Index.razor
index 34abf06d..8d675118 100644
--- a/Wonky.Client/Pages/Index.razor
+++ b/Wonky.Client/Pages/Index.razor
@@ -19,7 +19,8 @@
@page "/index"
@page "/home"
@using Wonky.Client.Components;
-
+@using Microsoft.AspNetCore.Authorization
+@attribute [Authorize(Roles = "Adviser,Admin,Supervisor")]
@code{
diff --git a/Wonky.Client/Pages/ReportView.razor b/Wonky.Client/Pages/ReportView.razor
index 4949c60e..294534ce 100644
--- a/Wonky.Client/Pages/ReportView.razor
+++ b/Wonky.Client/Pages/ReportView.razor
@@ -1,5 +1,7 @@
@using Wonky.Client.Components
+@using Microsoft.AspNetCore.Authorization
@page "/sales-report/view/{reportDate}"
+@attribute [Authorize(Roles = "Adviser,Admin,Supervisor")]
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
index 5da38a46..c2c8b9c4 100644
--- a/Wonky.Client/wwwroot/appsettings.json
+++ b/Wonky.Client/wwwroot/appsettings.json
@@ -23,7 +23,7 @@
"image": "grumpy-coder.png"
},
"apiConfig": {
- "baseAddress": "https://staging.innotec.dk",
+ "baseAddress": "https://dev.innotec.dk",
"tokenPath": "token",
"userInfo": "api/auth/userinfo",
"customerEndpoint": "api/v2/crm/companies",
diff --git a/Wonky.Entity/Views/NgActivityListView.cs b/Wonky.Entity/Views/NgActivityListView.cs
new file mode 100644
index 00000000..a6ef9a3c
--- /dev/null
+++ b/Wonky.Entity/Views/NgActivityListView.cs
@@ -0,0 +1,7 @@
+namespace Wonky.Entity.Views;
+
+public class NgActivityListView
+{
+ public bool ReportClosed { get; set; }
+ public List Activities { get; set; } = new();
+}
\ No newline at end of file
|