This commit is contained in:
Frede Hundewadt 2022-12-27 13:06:12 +01:00
parent 54815591af
commit b88a5a37a5
39 changed files with 165 additions and 163 deletions

View file

@ -8,19 +8,19 @@
@code { @code {
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
private int KmMorning { get; set; } private int KmMorning { get; set; }
private UserPref Prefs { get; set; } = new(); private UserPref Prefs { get; set; } = new();
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
KmMorning = Prefs.KmMorning; KmMorning = Prefs.KmMorning;
} }
private async Task OnKmChanged() private async Task OnKmChanged()
{ {
await PrefService.SetKmMorning(KmMorning); await ProfileService.SetKmMorning(KmMorning);
} }
} }

View file

@ -23,7 +23,7 @@ namespace Wonky.Client.Components;
public partial class CatalogGroupComponent public partial class CatalogGroupComponent
{ {
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; } [Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new(); private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new(); private UserPref Prefs = new();

View file

@ -24,7 +24,7 @@ public partial class CatalogSearchComponent : IDisposable
/// <summary> /// <summary>
/// User preference service /// User preference service
/// </summary> /// </summary>
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
/// <summary> /// <summary>
/// OnChanged event callback /// OnChanged event callback
@ -46,8 +46,8 @@ public partial class CatalogSearchComponent : IDisposable
/// </summary> /// </summary>
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
PrefService.OnChange += ProfileServiceOnOnChange; ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
SearchCol = Prefs.ItemSearch; SearchCol = Prefs.ItemSearch;
await OnChanged.InvokeAsync(SearchCol); await OnChanged.InvokeAsync(SearchCol);
} }
@ -61,7 +61,7 @@ public partial class CatalogSearchComponent : IDisposable
var val = e.Value.ToString(); var val = e.Value.ToString();
if (val == "-1") return; if (val == "-1") return;
await OnChanged.InvokeAsync(val); await OnChanged.InvokeAsync(val);
await PrefService.SetItemSearch(val); await ProfileService.SetItemSearch(val);
} }
/// <summary> /// <summary>
@ -79,6 +79,6 @@ public partial class CatalogSearchComponent : IDisposable
/// </summary> /// </summary>
public void Dispose() public void Dispose()
{ {
PrefService.OnChange -= ProfileServiceOnOnChange; ProfileService.OnChange -= ProfileServiceOnOnChange;
} }
} }

View file

@ -24,7 +24,7 @@ public partial class CatalogSortComponent : IDisposable
/// <summary> /// <summary>
/// User preference service /// User preference service
/// </summary> /// </summary>
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
/// <summary> /// <summary>
/// OnChanged callback function /// OnChanged callback function
@ -46,8 +46,8 @@ public partial class CatalogSortComponent : IDisposable
/// </summary> /// </summary>
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
PrefService.OnChange += ProfileServiceOnOnChange; ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
SortCol = Prefs.ItemSort; SortCol = Prefs.ItemSort;
} }
@ -60,7 +60,7 @@ public partial class CatalogSortComponent : IDisposable
var val = e.Value.ToString(); var val = e.Value.ToString();
if (val == "-1") return; if (val == "-1") return;
await OnChanged.InvokeAsync(val); await OnChanged.InvokeAsync(val);
await PrefService.SetItemSort(val); await ProfileService.SetItemSort(val);
} }
/// <summary> /// <summary>
@ -78,6 +78,6 @@ public partial class CatalogSortComponent : IDisposable
/// </summary> /// </summary>
public void Dispose() public void Dispose()
{ {
PrefService.OnChange -= ProfileServiceOnOnChange; ProfileService.OnChange -= ProfileServiceOnOnChange;
} }
} }

View file

@ -25,15 +25,15 @@ namespace Wonky.Client.Components;
public partial class CompanySearchColumnComponent : IDisposable public partial class CompanySearchColumnComponent : IDisposable
{ {
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; } [Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new(); private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs { get; set; } = new(); private UserPref Prefs { get; set; } = new();
private string SearchCol { get; set; } = "name"; private string SearchCol { get; set; } = "name";
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
PrefService.OnChange += ProfileServiceOnOnChange; ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
SearchCol = Prefs.CompanySearch; SearchCol = Prefs.CompanySearch;
} }
private async Task OnSelectionChanged(ChangeEventArgs e) private async Task OnSelectionChanged(ChangeEventArgs e)
@ -41,7 +41,7 @@ public partial class CompanySearchColumnComponent : IDisposable
var val = e.Value.ToString(); var val = e.Value.ToString();
if (val == "-1") return; if (val == "-1") return;
await OnChanged.InvokeAsync(val); await OnChanged.InvokeAsync(val);
await PrefService.SetCompanySearch(val); await ProfileService.SetCompanySearch(val);
} }
private void ProfileServiceOnOnChange(UserPref newUserPref) private void ProfileServiceOnOnChange(UserPref newUserPref)
{ {
@ -50,6 +50,6 @@ public partial class CompanySearchColumnComponent : IDisposable
} }
public void Dispose() public void Dispose()
{ {
PrefService.OnChange -= ProfileServiceOnOnChange; ProfileService.OnChange -= ProfileServiceOnOnChange;
} }
} }

View file

@ -25,12 +25,12 @@ namespace Wonky.Client.Components
private Timer InputTimer { get; set; } = new(); private Timer InputTimer { get; set; } = new();
private string SearchTerm { get; set; } = ""; private string SearchTerm { get; set; } = "";
private UserPref Prefs { get; set; } = new (); private UserPref Prefs { get; set; } = new ();
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; } [Parameter] public EventCallback<string> OnChanged { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
SearchTerm = string.IsNullOrWhiteSpace(Prefs.CompanyFilterPhrase) ? "" : Prefs.CompanyFilterPhrase.Trim(); SearchTerm = string.IsNullOrWhiteSpace(Prefs.CompanyFilterPhrase) ? "" : Prefs.CompanyFilterPhrase.Trim();
if(!string.IsNullOrWhiteSpace(SearchTerm)) if(!string.IsNullOrWhiteSpace(SearchTerm))
@ -41,13 +41,13 @@ namespace Wonky.Client.Components
{ {
InputTimer.Dispose(); InputTimer.Dispose();
SearchTerm = ""; SearchTerm = "";
await PrefService.SetCompanyFilterPhrase(SearchTerm.Trim()); await ProfileService.SetCompanyFilterPhrase(SearchTerm.Trim());
await OnChanged.InvokeAsync(SearchTerm); await OnChanged.InvokeAsync(SearchTerm);
} }
private async Task OnSearchChanged() private async Task OnSearchChanged()
{ {
await PrefService.SetCompanyFilterPhrase(SearchTerm.Trim()); await ProfileService.SetCompanyFilterPhrase(SearchTerm.Trim());
InputTimer.Dispose(); InputTimer.Dispose();
InputTimer = new Timer(500); InputTimer = new Timer(500);
InputTimer.AutoReset = false; InputTimer.AutoReset = false;

View file

@ -24,15 +24,15 @@ namespace Wonky.Client.Components
public partial class CompanySortComponent : IDisposable public partial class CompanySortComponent : IDisposable
{ {
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; } [Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new(); private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new(); private UserPref Prefs = new();
private string SortCol { get; set; } = "name"; private string SortCol { get; set; } = "name";
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
PrefService.OnChange += ProfileServiceOnOnChange; ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
SortCol = Prefs.CompanySort; SortCol = Prefs.CompanySort;
} }
private async Task OnSelectionChanged(ChangeEventArgs e) private async Task OnSelectionChanged(ChangeEventArgs e)
@ -40,7 +40,7 @@ namespace Wonky.Client.Components
var val = e.Value.ToString(); var val = e.Value.ToString();
if (val == "-1") return; if (val == "-1") return;
await OnChanged.InvokeAsync(val); await OnChanged.InvokeAsync(val);
await PrefService.SetCompanySort(val); await ProfileService.SetCompanySort(val);
} }
private void ProfileServiceOnOnChange(UserPref newUserPref) private void ProfileServiceOnOnChange(UserPref newUserPref)
{ {
@ -49,7 +49,7 @@ namespace Wonky.Client.Components
} }
public void Dispose() public void Dispose()
{ {
PrefService.OnChange -= ProfileServiceOnOnChange; ProfileService.OnChange -= ProfileServiceOnOnChange;
} }
} }
} }

View file

@ -32,7 +32,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Components; namespace Wonky.Client.Components;
public partial class LandingComponentAdmin : IDisposable public partial class LandingComponentAdmin : IDisposable
{ {
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Inject] public ILogger<LandingComponentAdmin> Logger { get; set; } [Inject] public ILogger<LandingComponentAdmin> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
@ -52,7 +52,7 @@ public partial class LandingComponentAdmin : IDisposable
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
if(!string.IsNullOrWhiteSpace(Prefs.WorkDate)) if(!string.IsNullOrWhiteSpace(Prefs.WorkDate))
WordDate = Prefs.WorkDate; WordDate = Prefs.WorkDate;

View file

@ -32,7 +32,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Components; namespace Wonky.Client.Components;
public partial class LandingComponentAdvisor : IDisposable public partial class LandingComponentAdvisor : IDisposable
{ {
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Inject] public ILogger<LandingComponentAdvisor> Logger { get; set; } [Inject] public ILogger<LandingComponentAdvisor> Logger { get; set; }
[Inject] public HttpInterceptorService Inteceptor { get; set; } [Inject] public HttpInterceptorService Inteceptor { get; set; }
[Inject] public IToastService Toaster { get; set; } [Inject] public IToastService Toaster { get; set; }
@ -51,7 +51,7 @@ public partial class LandingComponentAdvisor : IDisposable
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(Prefs.WorkDate) ? DateTime.Now : DateTime.Parse(Prefs.WorkDate); SelectedDate = string.IsNullOrWhiteSpace(Prefs.WorkDate) ? DateTime.Now : DateTime.Parse(Prefs.WorkDate);
Inteceptor.RegisterEvent(); Inteceptor.RegisterEvent();
@ -68,7 +68,7 @@ public partial class LandingComponentAdvisor : IDisposable
private async Task OnCompleteTask(string taskItemId) private async Task OnCompleteTask(string taskItemId)
{ {
await PrefService.SetWorkDate(DateTime.Now); await ProfileService.SetWorkDate(DateTime.Now);
var item = TaskItems.Find(x => x.TaskItemId == taskItemId); var item = TaskItems.Find(x => x.TaskItemId == taskItemId);
Navigator.NavigateTo($"/companies/{item.ReferenceId}/activities/new"); Navigator.NavigateTo($"/companies/{item.ReferenceId}/activities/new");
} }

View file

@ -41,51 +41,7 @@
{ {
@foreach (var report in ReportList) @foreach (var report in ReportList)
{ {
<ReportListItemComponent Report="report" ViewUrl="@($"/office/users/advisors/{CountryCode}/{UserId}/reports")" /> <ReportListItemComponent OnShowReport="ShowThisReport" Report="report" />
@*
<a class="list-group-item list-group-item-action" href="/office/users/advisors/@CountryCode/@UserId/reports/@report.ReportDate">
<div class="row">
<div class="col">
@report.ReportDate
</div>
<div class="col">
@{
switch (report.DayTypeEnum)
{
case "Sales":
<span>Salgsdag</span>
break;
case "SickLeave":
<span>Sygdom</span>
break;
case "Office":
<span>Kontordag</span>
break;
case "Meeting":
<span>Salgsmøde</span>
break;
case "Leave":
<span>Ferie</span>
break;
case "Supervisor":
<span>Supervisor</span>
break;
}
}
</div>
<div class="col text-center">
@(report.DayTypeEnum == "Sales" ? report.FromDateTime.Split(" ")[1] : report.FromDateTime.Split(" ")[0])
</div>
<div class="col text-center">
@(report.DayTypeEnum == "Sales" ? report.ToDateTime.Split(" ")[1] : report.ToDateTime.Split(" ")[0])
</div>
<div class="col text-end">
@report.Turnover.ToString(CultureInfo.CurrentUICulture)
</div>
</div>
</a>
*@
} }
} }
else else

View file

@ -23,4 +23,9 @@ public partial class OfficeReportTableComponent
[Parameter] public List<SalesReportListView> ReportList { get; set; } = new(); [Parameter] public List<SalesReportListView> ReportList { get; set; } = new();
[Parameter] public string UserId { get; set; } = ""; [Parameter] public string UserId { get; set; } = "";
[Parameter] public string CountryCode { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "";
[Parameter] public EventCallback<string> OnShowReport { get; set; }
private void ShowThisReport(string reportDate)
{
OnShowReport.InvokeAsync(reportDate);
}
} }

View file

@ -24,15 +24,15 @@ namespace Wonky.Client.Components
public partial class PageSizeComponent : IDisposable public partial class PageSizeComponent : IDisposable
{ {
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; } [Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new(); private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new(); private UserPref Prefs = new();
private string PageSize { get; set; } = ""; private string PageSize { get; set; } = "";
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
PrefService.OnChange += ProfileServiceOnOnChange; ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
PageSize = Prefs.PageSize; PageSize = Prefs.PageSize;
} }
private async Task OnSelectChanged(ChangeEventArgs e) private async Task OnSelectChanged(ChangeEventArgs e)
@ -40,7 +40,7 @@ namespace Wonky.Client.Components
var val = e.Value.ToString(); var val = e.Value.ToString();
if (val == "-1") return; if (val == "-1") return;
await OnChanged.InvokeAsync(val); await OnChanged.InvokeAsync(val);
await PrefService.SetPageSize(val); await ProfileService.SetPageSize(val);
} }
private void ProfileServiceOnOnChange(UserPref newUserPref) private void ProfileServiceOnOnChange(UserPref newUserPref)
{ {
@ -49,7 +49,7 @@ namespace Wonky.Client.Components
} }
public void Dispose() public void Dispose()
{ {
PrefService.OnChange -= ProfileServiceOnOnChange; ProfileService.OnChange -= ProfileServiceOnOnChange;
} }
} }
} }

View file

@ -17,7 +17,8 @@
@using Wonky.Entity.Views @using Wonky.Entity.Views
<a class="list-group-item list-group-item-action" href="@ViewUrl/@Report.ReportDate"> <button type="button" aria-role="navigation" class="list-group-item list-group-item-action"
style="cursor: pointer" @onclick="ShowThisReport">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
@Report.ReportDate @Report.ReportDate
@ -57,12 +58,14 @@
@Report.Turnover @Report.Turnover
</div> </div>
</div> </div>
</a> </button>
@code { @code {
[Parameter] [Parameter] public SalesReportListView Report { get; set; } = new();
public SalesReportListView Report { get; set; } = new(); [Parameter] public EventCallback<string> OnShowReport { get; set; }
[Parameter] private void ShowThisReport()
public string ViewUrl { get; set; } = ""; {
OnShowReport.InvokeAsync(Report.ReportDate);
}
} }

View file

@ -39,7 +39,7 @@
{ {
@foreach (var report in ReportList) @foreach (var report in ReportList)
{ {
<ReportListItemComponent Report="report" ViewUrl="/sales-reports/view" /> <ReportListItemComponent Report="report" OnShowReport="ShowThisReport" />
@* @*
<a class="list-group-item list-group-item-action" href="/sales-reports/view/@report.ReportDate"> <a class="list-group-item list-group-item-action" href="/sales-reports/view/@report.ReportDate">

View file

@ -22,9 +22,16 @@ namespace Wonky.Client.Components;
public partial class ReportTableComponent public partial class ReportTableComponent
{ {
[Parameter] public List<SalesReportListView> ReportList { get; set; } = new(); [Parameter] public List<SalesReportListView> ReportList { get; set; } = new();
[Parameter] public EventCallback<string> OnShowReport { get; set; }
private List<SalesReportListView> Reports { get; set; } = new(); private List<SalesReportListView> Reports { get; set; } = new();
protected override void OnParametersSet() protected override void OnParametersSet()
{ {
Reports = ReportList; Reports = ReportList;
} }
private void ShowThisReport(string reportDate)
{
OnShowReport.InvokeAsync(reportDate);
}
} }

View file

@ -28,7 +28,7 @@ public partial class WorkDateComponent : IDisposable
/// User preference service /// User preference service
/// </summary> /// </summary>
[Inject] [Inject]
public UserPrefService Prefs { get; set; } public UserProfileService Profiles { get; set; }
/// <summary> /// <summary>
/// OnChanged callback function /// OnChanged callback function
@ -49,7 +49,7 @@ public partial class WorkDateComponent : IDisposable
/// <summary> /// <summary>
/// user preferences /// user preferences
/// </summary> /// </summary>
private UserPref _prefs = new(); private UserPref Prefs = new();
/// <summary> /// <summary>
/// Component Initialization /// Component Initialization
@ -57,11 +57,11 @@ public partial class WorkDateComponent : IDisposable
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
WorkDateContext = new EditContext(SelectedDate); WorkDateContext = new EditContext(SelectedDate);
Prefs.OnChange += ProfileServiceOnOnChange; Profiles.OnChange += ProfileServiceOnOnChange;
_prefs = await Prefs.GetPreferences(); Prefs = await Profiles.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(_prefs.WorkDate) SelectedDate = string.IsNullOrWhiteSpace(Prefs.WorkDate)
? DateTime.Now ? DateTime.Now
: DateTime.Parse(_prefs.WorkDate); : DateTime.Parse(Prefs.WorkDate);
} }
/// <summary> /// <summary>
@ -73,7 +73,7 @@ public partial class WorkDateComponent : IDisposable
var x = DateTime.TryParse(e.Value.ToString(), out var setDate); var x = DateTime.TryParse(e.Value.ToString(), out var setDate);
if (x) if (x)
{ {
await Prefs.SetWorkDate(setDate); await Profiles.SetWorkDate(setDate);
await OnChangedCallback.InvokeAsync($"{setDate:yyyy-MM-dd}"); await OnChangedCallback.InvokeAsync($"{setDate:yyyy-MM-dd}");
} }
} }
@ -84,7 +84,7 @@ public partial class WorkDateComponent : IDisposable
/// <param name="newUserPref"></param> /// <param name="newUserPref"></param>
private void ProfileServiceOnOnChange(UserPref newUserPref) private void ProfileServiceOnOnChange(UserPref newUserPref)
{ {
_prefs = newUserPref; Prefs = newUserPref;
StateHasChanged(); StateHasChanged();
} }
@ -93,6 +93,6 @@ public partial class WorkDateComponent : IDisposable
/// </summary> /// </summary>
public void Dispose() public void Dispose()
{ {
Prefs.OnChange -= ProfileServiceOnOnChange; Profiles.OnChange -= ProfileServiceOnOnChange;
} }
} }

View file

@ -39,7 +39,7 @@ public partial class ActivityCreatePage : IDisposable
// Services // Services
[Inject] public ILogger<ActivityCreatePage> Logger { get; set; } [Inject] public ILogger<ActivityCreatePage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPrefService Prefs { get; set; } [Inject] public UserProfileService Profiles { get; set; }
[Inject] public IToastService Toast { get; set; } [Inject] public IToastService Toast { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
@ -93,7 +93,7 @@ public partial class ActivityCreatePage : IDisposable
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
// User Preferences // User Preferences
UserPrefs = await Prefs.GetPreferences(); UserPrefs = await Profiles.GetPreferences();
// User Info // User Info
ThisUserInfo = await Storage.GetItemAsync<UserInfoView>("_xu"); ThisUserInfo = await Storage.GetItemAsync<UserInfoView>("_xu");
// Fetch Customer from http // Fetch Customer from http
@ -225,7 +225,7 @@ public partial class ActivityCreatePage : IDisposable
/// </summary> /// </summary>
private async Task WorkDateConfirmCallback() private async Task WorkDateConfirmCallback()
{ {
await Prefs.SetDateConfirmed(true); await Profiles.SetDateConfirmed(true);
ConfirmWorkDateModal.Hide(); ConfirmWorkDateModal.Hide();
StateHasChanged(); StateHasChanged();
} }

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Pages;
public partial class ActivityListTodayPage : IDisposable public partial class ActivityListTodayPage : IDisposable
{ {
[Inject] public UserPrefService UserPrefService { get; set; } [Inject] public UserProfileService UserProfileService { get; set; }
[Inject] public ILogger<ActivityListTodayPage> Logger { get; set; } [Inject] public ILogger<ActivityListTodayPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
@ -44,7 +44,7 @@ public partial class ActivityListTodayPage : IDisposable
{ {
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
UserPref = await UserPrefService.GetPreferences(); UserPref = await UserProfileService.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(UserPref.WorkDate) ? DateTime.Now : DateTime.Parse(UserPref.WorkDate); SelectedDate = string.IsNullOrWhiteSpace(UserPref.WorkDate) ? DateTime.Now : DateTime.Parse(UserPref.WorkDate);
ReportExist = await CrmReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}"); ReportExist = await CrmReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
await GetActivities($"{SelectedDate:yyyy-MM-dd}"); await GetActivities($"{SelectedDate:yyyy-MM-dd}");

View file

@ -34,7 +34,7 @@ public partial class CatalogPage : IDisposable
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public ICatalogHttpRepository ItemRepo { get; set; } [Inject] public ICatalogHttpRepository ItemRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
private List<SalesItemView> Items { get; set; } = new(); private List<SalesItemView> Items { get; set; } = new();
private MetaData MetaInfo { get; set; } = new(); private MetaData MetaInfo { get; set; } = new();
private CatalogPagingParams PageParams = new(); private CatalogPagingParams PageParams = new();
@ -44,7 +44,7 @@ public partial class CatalogPage : IDisposable
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
UserInfo = await Storage.GetItemAsync<UserInfoView>("_xu"); UserInfo = await Storage.GetItemAsync<UserInfoView>("_xu");
PageParams.CountryCode = UserInfo.CountryCode; PageParams.CountryCode = UserInfo.CountryCode;

View file

@ -30,7 +30,7 @@ namespace Wonky.Client.Pages;
public partial class CrmReportNewPage : IDisposable public partial class CrmReportNewPage : IDisposable
{ {
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Inject] public ICrmActivityHttpRepository CrmActivityRepo { get; set; } [Inject] public ICrmActivityHttpRepository CrmActivityRepo { get; set; }
[Inject] public ICrmReportHttpRepository CrmReportRepo { get; set; } [Inject] public ICrmReportHttpRepository CrmReportRepo { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
@ -64,7 +64,7 @@ public partial class CrmReportNewPage : IDisposable
ReportContext.OnFieldChanged += HandleFieldChanged; ReportContext.OnFieldChanged += HandleFieldChanged;
ReportContext.OnValidationStateChanged += ValidationChanged; ReportContext.OnValidationStateChanged += ValidationChanged;
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
_workDate = DateTime.Now; _workDate = DateTime.Now;
if (!string.IsNullOrWhiteSpace(Prefs.WorkDate)) if (!string.IsNullOrWhiteSpace(Prefs.WorkDate))
_workDate = DateTime.Parse(Prefs.WorkDate); _workDate = DateTime.Parse(Prefs.WorkDate);
@ -134,9 +134,9 @@ public partial class CrmReportNewPage : IDisposable
Toaster.ShowInfo($"{result.Message}", $"HTTP Status"); Toaster.ShowInfo($"{result.Message}", $"HTTP Status");
// reset km and date confirmation // reset km and date confirmation
await PrefService.SetKmMorning(0); await ProfileService.SetKmMorning(0);
// reset date confirmed // reset date confirmed
await PrefService.SetDateConfirmed(false); await ProfileService.SetDateConfirmed(false);
Navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}"); Navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}");
} }
/// <summary> /// <summary>

View file

@ -70,6 +70,7 @@ public partial class CrmReportViewPage : IDisposable
// remove busy signal if report is empty // remove busy signal if report is empty
if (string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) if (string.IsNullOrWhiteSpace(Report.ReportData.ReportDate))
Working = false; Working = false;
ReportDate = workDate;
// return if we are already at it // return if we are already at it
if (Working) if (Working)
{ {

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Pages;
public partial class CrmTaskItemListPage : IDisposable public partial class CrmTaskItemListPage : IDisposable
{ {
[Inject] public UserPrefService UserPrefService { get; set; } [Inject] public UserProfileService UserProfileService { get; set; }
[Inject] public ILogger<CrmTaskItemListPage> Logger { get; set; } [Inject] public ILogger<CrmTaskItemListPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
@ -41,7 +41,7 @@ public partial class CrmTaskItemListPage : IDisposable
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
Prefs = await UserPrefService.GetPreferences(); Prefs = await UserProfileService.GetPreferences();
if(!string.IsNullOrWhiteSpace(Prefs.WorkDate)) if(!string.IsNullOrWhiteSpace(Prefs.WorkDate))
WorkDate = Prefs.WorkDate; WorkDate = Prefs.WorkDate;

View file

@ -31,7 +31,7 @@ namespace Wonky.Client.Pages
public partial class CustomerListPage : IDisposable public partial class CustomerListPage : IDisposable
{ {
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public UserPrefService PrefService { get; set; } [Inject] public UserProfileService ProfileService { get; set; }
[Inject] public ICrmCompanyHttpRepository CompanyRepo { get; set; } [Inject] public ICrmCompanyHttpRepository CompanyRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
@ -54,7 +54,7 @@ namespace Wonky.Client.Pages
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
// set preferences // set preferences
Prefs = await PrefService.GetPreferences(); Prefs = await ProfileService.GetPreferences();
UserInfo = await Storage.GetItemAsync<UserInfoView>("_xu"); UserInfo = await Storage.GetItemAsync<UserInfoView>("_xu");
PageParams.OrderBy = Prefs.CompanySort; PageParams.OrderBy = Prefs.CompanySort;
PageParams.SearchColumn = Prefs.CompanySearch; PageParams.SearchColumn = Prefs.CompanySearch;

View file

@ -30,7 +30,7 @@ public partial class OfficeCustomerListPage : IDisposable
[Inject] public ILogger<OfficeCustomerListPage> Logger { get; set; } [Inject] public ILogger<OfficeCustomerListPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; } [Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; }
[Inject] public UserPrefService UserPrefService { get; set; } [Inject] public UserProfileService UserProfileService { get; set; }
private List<CompanyDto> _companyList { get; set; } = new(); private List<CompanyDto> _companyList { get; set; } = new();
private MetaData _metaData { get; set; } = new(); private MetaData _metaData { get; set; } = new();
private CompanyPagingParams _paging = new(); private CompanyPagingParams _paging = new();
@ -45,7 +45,7 @@ public partial class OfficeCustomerListPage : IDisposable
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
// set preferences // set preferences
UserPref = await UserPrefService.GetPreferences(); UserPref = await UserProfileService.GetPreferences();
_paging.CountryCode = CountryCode; _paging.CountryCode = CountryCode;
@ -104,7 +104,7 @@ public partial class OfficeCustomerListPage : IDisposable
if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.TrimEnd().Length > 2) if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.TrimEnd().Length > 2)
{ {
_savedSearch = searchTerm; _savedSearch = searchTerm;
await UserPrefService.SetCompanyFilterPhrase(searchTerm.Trim()); await UserProfileService.SetCompanyFilterPhrase(searchTerm.Trim());
} }
} }

View file

@ -30,7 +30,7 @@ public partial class OfficeCustomerSalesRepListPage : IDisposable
[Inject] public ILogger<OfficeCustomerSalesRepListPage> Logger { get; set; } [Inject] public ILogger<OfficeCustomerSalesRepListPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; } [Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; }
[Inject] public UserPrefService UserPrefService { get; set; } [Inject] public UserProfileService UserProfileService { get; set; }
private List<CompanyDto> _companyList { get; set; } = new(); private List<CompanyDto> _companyList { get; set; } = new();
private MetaData _metaData { get; set; } = new(); private MetaData _metaData { get; set; } = new();
private CompanyPagingParams _paging = new(); private CompanyPagingParams _paging = new();
@ -45,7 +45,7 @@ public partial class OfficeCustomerSalesRepListPage : IDisposable
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
// set preferences // set preferences
UserPref = await UserPrefService.GetPreferences(); UserPref = await UserProfileService.GetPreferences();
_paging.CountryCode = CountryCode; _paging.CountryCode = CountryCode;
_paging.OrderBy = UserPref.CompanySort; _paging.OrderBy = UserPref.CompanySort;
_paging.SearchColumn = UserPref.CompanySearch; _paging.SearchColumn = UserPref.CompanySearch;
@ -103,7 +103,7 @@ public partial class OfficeCustomerSalesRepListPage : IDisposable
if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.TrimEnd().Length > 2) if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.TrimEnd().Length > 2)
{ {
_savedSearch = searchTerm; _savedSearch = searchTerm;
await UserPrefService.SetCompanyFilterPhrase(searchTerm.Trim()); await UserProfileService.SetCompanyFilterPhrase(searchTerm.Trim());
} }
} }

View file

@ -29,7 +29,7 @@
</div> </div>
</div> </div>
<div class="card-body"> <div class="card-body">
<OfficeReportTableComponent CountryCode="@CountryCode" UserId="@UserId" ReportList="@ActivityReports" /> <OfficeReportTableComponent OnShowReport="ShowThisReport" CountryCode="@CountryCode" UserId="@UserId" ReportList="@ActivityReports" />
</div> </div>
</div> </div>

View file

@ -30,30 +30,30 @@ public partial class OfficeReportListPage : IDisposable
[Inject] public IOfficeReportHttpRepository ReportRepo { get; set; } [Inject] public IOfficeReportHttpRepository ReportRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IUserHttpRepository UserRepo { get; set; } [Inject] public IUserHttpRepository UserRepo { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
private List<SalesReportListView> ActivityReports { get; set; } = new(); private List<SalesReportListView> ActivityReports { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private WebUserInfoView UserInfo { get; set; } = new(); private WebUserInfoView UserInfo { get; set; } = new();
protected override async Task OnParametersSetAsync()
protected override async Task OnInitializedAsync()
{ {
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
await Task.Delay(1000);
UserInfo = await UserRepo.GetAdvisorInfo(UserId);
await FetchReports();
Working = false;
}
private async Task FetchReports() UserInfo = await UserRepo.GetAdvisorInfo(UserId);
{
await Task.Delay(1000);
var reports = await ReportRepo.GetReports(UserId); var reports = await ReportRepo.GetReports(UserId);
if (reports.Any()) if (reports.Any())
ActivityReports = reports.OrderByDescending(x => x.ReportDate).ToList(); ActivityReports = reports.OrderByDescending(x => x.ReportDate).ToList();
Working = false; Working = false;
} }
private void ShowThisReport(string reportDate)
{
var uri = new Uri(Navigator.Uri);
var url = uri.AbsoluteUri;
Navigator.NavigateTo($"{url}/{reportDate}");
}
/// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary> /// <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
public void Dispose() public void Dispose()
{ {

View file

@ -68,6 +68,6 @@
{ {
foreach (var item in Activities.Where(item => item.StatusTypeEnum.ToLower() == "order" && item.ProcessStatusEnum.ToLower() == "none")) foreach (var item in Activities.Where(item => item.StatusTypeEnum.ToLower() == "order" && item.ProcessStatusEnum.ToLower() == "none"))
{ {
<ReportItemComponent ReportItem="@item"></ReportItemComponent> <ReportItemComponent ReportItem="@item" />
} }
} }

View file

@ -18,6 +18,7 @@ using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces; using Wonky.Client.HttpInterfaces;
using Wonky.Client.Models; using Wonky.Client.Models;
using Wonky.Client.Services;
using Wonky.Entity.Views; using Wonky.Entity.Views;
namespace Wonky.Client.Pages; namespace Wonky.Client.Pages;
@ -30,18 +31,17 @@ public partial class OfficeReportViewPage : IDisposable
[Parameter] [Parameter]
public string CountryCode { get; set; } = ""; public string CountryCode { get; set; } = "";
/// <summary>
/// Report date from url parameter
/// </summary>
[Parameter]
public string ReportDate { get; set; } = "";
/// <summary> /// <summary>
/// User entity Id from url parameter /// User entity Id from url parameter
/// </summary> /// </summary>
[Parameter] [Parameter]
public string UserId { get; set; } = ""; public string UserId { get; set; } = "";
/// <summary>
/// Report Date
/// </summary>
[Parameter]
public string ReportDate { get; set; } = "";
/// <summary> /// <summary>
/// Injected interceptor service /// Injected interceptor service
/// </summary> /// </summary>
@ -59,37 +59,58 @@ public partial class OfficeReportViewPage : IDisposable
/// </summary> /// </summary>
[Inject] [Inject]
public NavigationManager Navigator { get; set; } public NavigationManager Navigator { get; set; }
/// <summary> /// <summary>
/// Logger service /// Logger service
/// </summary> /// </summary>
[Inject] public ILogger<OfficeReportViewPage> Logger { get; set; } [Inject]
public ILogger<OfficeReportViewPage> Logger { get; set; }
/// <summary> /// <summary>
/// Storage service /// Storage service
/// </summary> /// </summary>
[Inject] public ILocalStorageService Storage { get; set; } [Inject]
public ILocalStorageService Storage { get; set; }
/// <summary>
/// Preference service
/// </summary>
[Inject]
public UserProfileService ProfileService { get; set; }
private ReportView Report { get; set; } = new(); private ReportView Report { get; set; } = new();
private List<ReportItemView> Activities { get; set; } = new(); private List<ReportItemView> Activities { get; set; } = new();
private bool Working { get; set; } = true; private bool Working { get; set; } = true;
private UserPref Prefs = new();
private string ReturnUrl = "";
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
Interceptor.RegisterEvent(); Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent(); Interceptor.RegisterBeforeSendEvent();
await ProfileService.SetWorkDate(DateTime.Parse(ReportDate));
ProfileService.OnChange += ProfileServiceOnOnChange;
//ReturnUrl = new Uri(Navigator.Uri).AbsolutePath.Replace($"/{ReportDate}", "");
ReturnUrl = new Uri(Navigator.Uri).AbsolutePath;
Logger.LogDebug("Print() => returnUrl <= {}", ReturnUrl);
await FetchUserReport(ReportDate); await FetchUserReport(ReportDate);
} }
private void Print(PTarget target) private void Print(PTarget target)
{ {
var returnUrl = new Uri(Navigator.Uri).AbsolutePath;
Logger.LogDebug("Print() => returnUrl <= {}", ReturnUrl);
switch (target) switch (target)
{ {
case PTarget.Order: case PTarget.Order:
Navigator.NavigateTo($"/print/orders/{CountryCode}/{UserId}/{ReportDate}?returnUrl={returnUrl}"); Navigator.NavigateTo($"/print/orders/{CountryCode}/{UserId}/{ReportDate}?returnUrl={ReturnUrl}");
break; break;
case PTarget.Report: case PTarget.Report:
Navigator.NavigateTo($"/print/report/{CountryCode}/{UserId}/{ReportDate}?returnUrl={returnUrl}"); Navigator.NavigateTo($"/print/report/{CountryCode}/{UserId}/{ReportDate}?returnUrl={ReturnUrl}");
break; break;
case PTarget.None: case PTarget.None:
break; break;
@ -108,13 +129,15 @@ public partial class OfficeReportViewPage : IDisposable
{ {
// remove busy signal if report is empty // remove busy signal if report is empty
if (string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) if (string.IsNullOrWhiteSpace(Report.ReportData.ReportDate))
{
Working = false; Working = false;
}
Navigator.NavigateTo($"/office/users/advisors/{CountryCode}/{UserId}/reports/{workDate}", false, true);
// return if we are already at it // return if we are already at it
if (Working) if (Working)
{ {
return; return;
} }
// reset variables // reset variables
Report = new ReportView(); Report = new ReportView();
Activities = new List<ReportItemView>(); Activities = new List<ReportItemView>();
@ -127,14 +150,22 @@ public partial class OfficeReportViewPage : IDisposable
// store locally // store locally
if (!string.IsNullOrWhiteSpace(Report.ReportData.ReportDate)) if (!string.IsNullOrWhiteSpace(Report.ReportData.ReportDate))
{ {
await Storage.SetItemAsync($"{UserId}-{Report.ReportData.ReportDate}", Report); await Storage.SetItemAsync($"{UserId}-{workDate}", Report);
} }
// remove busy signal // remove busy signal
Working = false; Working = false;
} }
private void ProfileServiceOnOnChange(UserPref userPref)
{
Prefs = userPref;
ReportDate = Prefs.WorkDate;
StateHasChanged();
}
public void Dispose() public void Dispose()
{ {
Interceptor.DisposeEvent(); Interceptor.DisposeEvent();
ProfileService.OnChange -= ProfileServiceOnOnChange;
} }
} }

View file

@ -25,7 +25,7 @@
<a class="btn btn-info" href="@ReturnUrl"><i class="bi-back"></i> Tilbage</a> <a class="btn btn-info" href="@ReturnUrl"><i class="bi-back"></i> Tilbage</a>
</div> </div>
<div class="col-sm-6 d-grid"> <div class="col-sm-6 d-grid">
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Print</button> <button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Udskriv</button>
</div> </div>
</div> </div>

View file

@ -21,7 +21,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Pages; namespace Wonky.Client.Pages;
public partial class PrintOrderPage public partial class PrintFrontPage
{ {
[Parameter] public string CountryCode { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "";
[Parameter] public string UserId { get; set; } = ""; [Parameter] public string UserId { get; set; } = "";
@ -29,7 +29,7 @@ public partial class PrintOrderPage
[Inject] public ILocalStorageService Storage { get; set; } [Inject] public ILocalStorageService Storage { get; set; }
[Inject] public NavigationManager Navigator { get; set; } [Inject] public NavigationManager Navigator { get; set; }
[Inject] private IJSRuntime JSRuntime { get; set; } [Inject] private IJSRuntime JSRuntime { get; set; }
[Inject] public ILogger<PrintOrderPage> Logger { get; set; } [Inject] public ILogger<PrintFrontPage> Logger { get; set; }
private ReportView Report { get; set; } = new(); private ReportView Report { get; set; } = new();
private List<ReportItemView> Items { get; set; } = new(); private List<ReportItemView> Items { get; set; } = new();
private IJSObjectReference JsModule { get; set; } private IJSObjectReference JsModule { get; set; }
@ -47,7 +47,7 @@ public partial class PrintOrderPage
{ {
var uri = new Uri(Navigator.Uri); var uri = new Uri(Navigator.Uri);
var query = Utils.ParseQuery(uri.Query[1..]); var query = Utils.ParseQuery(uri.Query[1..]);
ReturnUrl = string.IsNullOrWhiteSpace(query["returnUrl"]) ? "/" : query["returnUrl"]; ReturnUrl = string.IsNullOrWhiteSpace(query["returnUrl"]) ? "/" : $"{query["returnUrl"]}/{ReportDate}";
Report = await Storage.GetItemAsync<ReportView>($"{UserId}-{ReportDate}"); Report = await Storage.GetItemAsync<ReportView>($"{UserId}-{ReportDate}");
Items = Report.ReportItems; Items = Report.ReportItems;

View file

@ -25,7 +25,7 @@
<a class="btn btn-info" href="@ReturnUrl"><i class="bi-back"></i> Tilbage</a> <a class="btn btn-info" href="@ReturnUrl"><i class="bi-back"></i> Tilbage</a>
</div> </div>
<div class="col-sm-6 d-grid"> <div class="col-sm-6 d-grid">
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Print</button> <button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Udskriv</button>
</div> </div>
</div> </div>

View file

@ -39,7 +39,7 @@ public partial class PrintReportPage
{ {
var uri = new Uri(Navigator.Uri); var uri = new Uri(Navigator.Uri);
var query = Utils.ParseQuery(uri.Query[1..]); var query = Utils.ParseQuery(uri.Query[1..]);
ReturnUrl = string.IsNullOrWhiteSpace(query["returnUrl"]) ? "/" : query["returnUrl"]; ReturnUrl = string.IsNullOrWhiteSpace(query["returnUrl"]) ? "/" : $"{query["returnUrl"]}/{ReportDate}" ;
Report = await Storage.GetItemAsync<ReportView>($"{UserId}-{ReportDate}"); Report = await Storage.GetItemAsync<ReportView>($"{UserId}-{ReportDate}");
} }

View file

@ -86,7 +86,7 @@ builder.Services.AddScoped<RefreshTokenService>();
// vat registry service // vat registry service
builder.Services.AddScoped<VatInfoLookupService>(); builder.Services.AddScoped<VatInfoLookupService>();
// preference service // preference service
builder.Services.AddScoped<UserPrefService>(); builder.Services.AddScoped<UserProfileService>();
// activity draft service // activity draft service
builder.Services.AddScoped<OrderDraftService>(); builder.Services.AddScoped<OrderDraftService>();

View file

@ -29,11 +29,11 @@ public record UserPref
public bool DateConfirmed { get; set; } public bool DateConfirmed { get; set; }
} }
public class UserPrefService public class UserProfileService
{ {
private readonly ILocalStorageService _localStorageService; private readonly ILocalStorageService _localStorageService;
public event Action<UserPref>? OnChange; public event Action<UserPref>? OnChange;
public UserPrefService(ILocalStorageService localStorageService) public UserProfileService(ILocalStorageService localStorageService)
{ {
_localStorageService = localStorageService; _localStorageService = localStorageService;
} }

View file

@ -30,7 +30,7 @@ public partial class PriceListModal : IDisposable
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; } [Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
[Inject] public ICatalogHttpRepository ItemRepo { get; set; } [Inject] public ICatalogHttpRepository ItemRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPrefService UserPrefService { get; set; } [Inject] public UserProfileService UserProfileService { get; set; }
private string _modalDisplay = ""; private string _modalDisplay = "";
private bool _showBackdrop; private bool _showBackdrop;
@ -41,7 +41,7 @@ public partial class PriceListModal : IDisposable
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
_userPref = await UserPrefService.GetPreferences(); _userPref = await UserProfileService.GetPreferences();
_paging.CountryCode = CountryCode; _paging.CountryCode = CountryCode;
_paging.OrderBy = _userPref.ItemSort; _paging.OrderBy = _userPref.ItemSort;
_paging.SearchColumn = _userPref.ItemSearch; _paging.SearchColumn = _userPref.ItemSearch;

View file

@ -7,7 +7,7 @@
"image": "grumpy-coder.png" "image": "grumpy-coder.png"
}, },
"apiConfig": { "apiConfig": {
"baseUrl": "https://zeta.innotec.dk", "baseUrl": "https://dev.innotec.dk",
"catalog": "api/v2/catalog", "catalog": "api/v2/catalog",
"crmCustomers": "api/v2/crm/companies", "crmCustomers": "api/v2/crm/companies",
"crmInventoryExt": "history/inventory", "crmInventoryExt": "history/inventory",

View file

@ -0,0 +1,3 @@
document.addEventListener("load", function() {
window.print();
});

View file

@ -1,7 +1,3 @@
export function printInvoke() { export function printInvoke() {
window.print(); window.print();
} }
document.addEventListener("load", function() {
window.print();
});