wip
This commit is contained in:
parent
54815591af
commit
b88a5a37a5
39 changed files with 165 additions and 163 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -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();
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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">
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}");
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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" />
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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>
|
||||||
|
|
|
@ -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;
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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}");
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>();
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
|
@ -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;
|
||||||
|
|
|
@ -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",
|
||||||
|
|
3
Wonky.Client/wwwroot/scripts/document-event-load.js
Normal file
3
Wonky.Client/wwwroot/scripts/document-event-load.js
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
document.addEventListener("load", function() {
|
||||||
|
window.print();
|
||||||
|
});
|
|
@ -1,7 +1,3 @@
|
||||||
export function printInvoke() {
|
export function printInvoke() {
|
||||||
window.print();
|
window.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener("load", function() {
|
|
||||||
window.print();
|
|
||||||
});
|
|
||||||
|
|
Loading…
Reference in a new issue