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 {
[Inject] public UserPrefService PrefService { get; set; }
[Inject] public UserProfileService ProfileService { get; set; }
private int KmMorning { get; set; }
private UserPref Prefs { get; set; } = new();
protected override async Task OnInitializedAsync()
{
Prefs = await PrefService.GetPreferences();
Prefs = await ProfileService.GetPreferences();
KmMorning = Prefs.KmMorning;
}
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
{
[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; }
private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new();

View file

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

View file

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

View file

@ -25,15 +25,15 @@ namespace Wonky.Client.Components;
public partial class CompanySearchColumnComponent : IDisposable
{
[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; }
private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs { get; set; } = new();
private string SearchCol { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
PrefService.OnChange += ProfileServiceOnOnChange;
Prefs = await PrefService.GetPreferences();
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
SearchCol = Prefs.CompanySearch;
}
private async Task OnSelectionChanged(ChangeEventArgs e)
@ -41,7 +41,7 @@ public partial class CompanySearchColumnComponent : IDisposable
var val = e.Value.ToString();
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await PrefService.SetCompanySearch(val);
await ProfileService.SetCompanySearch(val);
}
private void ProfileServiceOnOnChange(UserPref newUserPref)
{
@ -50,6 +50,6 @@ public partial class CompanySearchColumnComponent : IDisposable
}
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 string SearchTerm { get; set; } = "";
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; }
protected override async Task OnInitializedAsync()
{
Prefs = await PrefService.GetPreferences();
Prefs = await ProfileService.GetPreferences();
SearchTerm = string.IsNullOrWhiteSpace(Prefs.CompanyFilterPhrase) ? "" : Prefs.CompanyFilterPhrase.Trim();
if(!string.IsNullOrWhiteSpace(SearchTerm))
@ -41,13 +41,13 @@ namespace Wonky.Client.Components
{
InputTimer.Dispose();
SearchTerm = "";
await PrefService.SetCompanyFilterPhrase(SearchTerm.Trim());
await ProfileService.SetCompanyFilterPhrase(SearchTerm.Trim());
await OnChanged.InvokeAsync(SearchTerm);
}
private async Task OnSearchChanged()
{
await PrefService.SetCompanyFilterPhrase(SearchTerm.Trim());
await ProfileService.SetCompanyFilterPhrase(SearchTerm.Trim());
InputTimer.Dispose();
InputTimer = new Timer(500);
InputTimer.AutoReset = false;

View file

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

View file

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

View file

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

View file

@ -41,51 +41,7 @@
{
@foreach (var report in ReportList)
{
<ReportListItemComponent Report="report" ViewUrl="@($"/office/users/advisors/{CountryCode}/{UserId}/reports")" />
@*
<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>
*@
<ReportListItemComponent OnShowReport="ShowThisReport" Report="report" />
}
}
else

View file

@ -23,4 +23,9 @@ public partial class OfficeReportTableComponent
[Parameter] public List<SalesReportListView> ReportList { get; set; } = new();
[Parameter] public string UserId { 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
{
[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; }
private Dictionary<string, string> Items { get; set; } = new();
private UserPref Prefs = new();
private string PageSize { get; set; } = "";
protected override async Task OnInitializedAsync()
{
PrefService.OnChange += ProfileServiceOnOnChange;
Prefs = await PrefService.GetPreferences();
ProfileService.OnChange += ProfileServiceOnOnChange;
Prefs = await ProfileService.GetPreferences();
PageSize = Prefs.PageSize;
}
private async Task OnSelectChanged(ChangeEventArgs e)
@ -40,7 +40,7 @@ namespace Wonky.Client.Components
var val = e.Value.ToString();
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await PrefService.SetPageSize(val);
await ProfileService.SetPageSize(val);
}
private void ProfileServiceOnOnChange(UserPref newUserPref)
{
@ -49,7 +49,7 @@ namespace Wonky.Client.Components
}
public void Dispose()
{
PrefService.OnChange -= ProfileServiceOnOnChange;
ProfileService.OnChange -= ProfileServiceOnOnChange;
}
}
}

View file

@ -17,7 +17,8 @@
@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="col">
@Report.ReportDate
@ -57,12 +58,14 @@
@Report.Turnover
</div>
</div>
</a>
</button>
@code {
[Parameter]
public SalesReportListView Report { get; set; } = new();
[Parameter] public SalesReportListView Report { get; set; } = new();
[Parameter] public EventCallback<string> OnShowReport { get; set; }
[Parameter]
public string ViewUrl { get; set; } = "";
private void ShowThisReport()
{
OnShowReport.InvokeAsync(Report.ReportDate);
}
}

View file

@ -39,7 +39,7 @@
{
@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">

View file

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

View file

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

View file

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

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Pages;
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 HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
@ -44,7 +44,7 @@ public partial class ActivityListTodayPage : IDisposable
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
UserPref = await UserPrefService.GetPreferences();
UserPref = await UserProfileService.GetPreferences();
SelectedDate = string.IsNullOrWhiteSpace(UserPref.WorkDate) ? DateTime.Now : DateTime.Parse(UserPref.WorkDate);
ReportExist = await CrmReportRepo.ReportExist($"{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 ICatalogHttpRepository ItemRepo { 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 MetaData MetaInfo { get; set; } = new();
private CatalogPagingParams PageParams = new();
@ -44,7 +44,7 @@ public partial class CatalogPage : IDisposable
protected override async Task OnInitializedAsync()
{
Prefs = await PrefService.GetPreferences();
Prefs = await ProfileService.GetPreferences();
UserInfo = await Storage.GetItemAsync<UserInfoView>("_xu");
PageParams.CountryCode = UserInfo.CountryCode;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -30,30 +30,30 @@ public partial class OfficeReportListPage : IDisposable
[Inject] public IOfficeReportHttpRepository ReportRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IUserHttpRepository UserRepo { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
private List<SalesReportListView> ActivityReports { get; set; } = new();
private bool Working { get; set; } = true;
private WebUserInfoView UserInfo { get; set; } = new();
protected override async Task OnInitializedAsync()
protected override async Task OnParametersSetAsync()
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
await Task.Delay(1000);
UserInfo = await UserRepo.GetAdvisorInfo(UserId);
await FetchReports();
Working = false;
}
private async Task FetchReports()
{
await Task.Delay(1000);
UserInfo = await UserRepo.GetAdvisorInfo(UserId);
var reports = await ReportRepo.GetReports(UserId);
if (reports.Any())
ActivityReports = reports.OrderByDescending(x => x.ReportDate).ToList();
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>
public void Dispose()
{

View file

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

View file

@ -21,7 +21,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.Pages;
public partial class PrintOrderPage
public partial class PrintFrontPage
{
[Parameter] public string CountryCode { get; set; } = "";
[Parameter] public string UserId { get; set; } = "";
@ -29,7 +29,7 @@ public partial class PrintOrderPage
[Inject] public ILocalStorageService Storage { get; set; }
[Inject] public NavigationManager Navigator { 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 List<ReportItemView> Items { get; set; } = new();
private IJSObjectReference JsModule { get; set; }
@ -47,7 +47,7 @@ public partial class PrintOrderPage
{
var uri = new Uri(Navigator.Uri);
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}");
Items = Report.ReportItems;

View file

@ -25,7 +25,7 @@
<a class="btn btn-info" href="@ReturnUrl"><i class="bi-back"></i> Tilbage</a>
</div>
<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>

View file

@ -39,7 +39,7 @@ public partial class PrintReportPage
{
var uri = new Uri(Navigator.Uri);
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}");
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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