diff --git a/Wonky.Client/Components/LandingComponentOffice.razor b/Wonky.Client/Components/LandingComponentOffice.razor index c0c46091..94d4906b 100644 --- a/Wonky.Client/Components/LandingComponentOffice.razor +++ b/Wonky.Client/Components/LandingComponentOffice.razor @@ -32,7 +32,7 @@ Tlf.Ordre - + Priser @@ -53,7 +53,7 @@ Tlf.Ordre - + Priser @@ -74,7 +74,7 @@ Tlf.Ordre - + Priser diff --git a/Wonky.Client/Components/PageSizeComponent.razor.cs b/Wonky.Client/Components/PageSizeComponent.razor.cs index 62f3fe9d..1494c1f2 100644 --- a/Wonky.Client/Components/PageSizeComponent.razor.cs +++ b/Wonky.Client/Components/PageSizeComponent.razor.cs @@ -29,12 +29,14 @@ namespace Wonky.Client.Components private Dictionary Items { get; set; } = new(); private UserPref Prefs = new(); private string PageSize { get; set; } = ""; + protected override async Task OnInitializedAsync() { ProfileService.OnChange += ProfileServiceOnOnChange; Prefs = await ProfileService.GetPreferences(); PageSize = Prefs.PageSize; } + private async Task OnSelectChanged(ChangeEventArgs e) { var val = e.Value.ToString(); @@ -42,11 +44,13 @@ namespace Wonky.Client.Components await OnChanged.InvokeAsync(val); await ProfileService.SetPageSize(val); } + private void ProfileServiceOnOnChange(UserPref newUserPref) { Prefs = newUserPref; StateHasChanged(); } + public void Dispose() { ProfileService.OnChange -= ProfileServiceOnOnChange; diff --git a/Wonky.Client/Components/QuoteListComponent.razor.cs b/Wonky.Client/Components/QuoteListComponent.razor.cs index 6df5a184..d5fcb0d6 100644 --- a/Wonky.Client/Components/QuoteListComponent.razor.cs +++ b/Wonky.Client/Components/QuoteListComponent.razor.cs @@ -8,11 +8,11 @@ public partial class QuoteListComponent { [Parameter] public List Quotes { get; set; } = new(); - [Parameter] public EventCallback OnChangedCallback { get; set; } + [Parameter] public EventCallback OnChangedCallback { get; set; } private async Task SetQuote(string eSalesNumber, QStatus status) { - var args = new QuoteCallbackArgs() + var args = new QCallbackArgs() { ESalesNumber = eSalesNumber, Status = status diff --git a/Wonky.Client/Components/WorkDateComponent.razor b/Wonky.Client/Components/WorkDateComponent.razor index e9e1d862..dd08254f 100644 --- a/Wonky.Client/Components/WorkDateComponent.razor +++ b/Wonky.Client/Components/WorkDateComponent.razor @@ -21,8 +21,8 @@
-
- @SelectedDate.ToLongDateString() +
+ @SelectedDate.DayOfWeek d. @(SelectedDate.Day)/@(SelectedDate.Month)
diff --git a/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs b/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs index de952483..6d48fce1 100644 --- a/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs +++ b/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs @@ -86,32 +86,35 @@ namespace Wonky.Client.HttpInterceptors if (e.Response == null || e.Response.IsSuccessStatusCode) return; - var message = "En fejl er opstået"; + var message = $"En fejl er opstået \n {e.Response.Content}"; var currDoc = _navigation.ToBaseRelativePath(_navigation.Uri); if (currDoc.Contains("login/")) currDoc = ""; switch (e.Response.StatusCode) { - case HttpStatusCode.NotFound: + case HttpStatusCode.NotFound: _logger.LogDebug("NotFound <= {}", currDoc); break; case HttpStatusCode.BadRequest: _logger.LogDebug("BadRequest <= {}", currDoc); + _logger.LogDebug("{}", message); break; case HttpStatusCode.Unauthorized: - _authenticationService.Logout(); + _logger.LogDebug("Unauthorized <= {}", currDoc); + _logger.LogDebug("{}", message); + + //_authenticationService.Logout(); _navigation.NavigateTo($"/login/{currDoc}"); - message = "Venligst login ..."; _toast.ShowInfo(message); break; case HttpStatusCode.Conflict: _logger.LogDebug("Conflict <= {}", currDoc); + _logger.LogDebug("{}", message); break; case HttpStatusCode.InternalServerError: - // message = "Der er interne problemer på serveren ..."; - // _toast.ShowError(message); _logger.LogDebug("InternalServerError <= {}", currDoc); + _logger.LogDebug("{}", message); break; default: _toast.ShowError(message); diff --git a/Wonky.Client/HttpInterfaces/IAdvisorCatalogRepository.cs b/Wonky.Client/HttpInterfaces/IAdvisorCatalogRepository.cs deleted file mode 100644 index ad55f29b..00000000 --- a/Wonky.Client/HttpInterfaces/IAdvisorCatalogRepository.cs +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// - -using Wonky.Client.Features; -using Wonky.Entity.Requests; -using Wonky.Entity.Views; - -namespace Wonky.Client.HttpInterfaces; - -/// -/// Interface Catalog Http repository -/// -public interface IAdvisorCatalogRepository -{ - /// - /// Get a paged sales item list - /// - /// - /// - Task> GetSalesItemsPaged(CatalogPaging pagingParameters); - - /// - /// Get sales item by id - /// - /// - /// - Task GetSalesItemId(string salesItemId); - - /// - /// Overload Get sales item by sku and country code - /// - /// - /// - /// - Task GetSalesItemSku(string countryCode, string sku); - - /// - /// Get sales item by variant id - /// - /// - /// - Task GetSalesVariantId(string variantId); - - /// - /// Complete catalog for print - /// - /// - Task> GetPriceList(); - - /// - /// Complete catalog for print country - /// - /// - /// - Task> GetPriceList(string countryCode); -} \ No newline at end of file diff --git a/Wonky.Client/HttpInterfaces/IWorkplaceRepository.cs b/Wonky.Client/HttpInterfaces/IAdvisorWorkplaceRepository.cs similarity index 98% rename from Wonky.Client/HttpInterfaces/IWorkplaceRepository.cs rename to Wonky.Client/HttpInterfaces/IAdvisorWorkplaceRepository.cs index 1b290d2f..2bbf1c44 100644 --- a/Wonky.Client/HttpInterfaces/IWorkplaceRepository.cs +++ b/Wonky.Client/HttpInterfaces/IAdvisorWorkplaceRepository.cs @@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces; /// /// Interface for handling Customer Workplaces (chemical document service) /// -public interface IWorkplaceRepository +public interface IAdvisorWorkplaceRepository { /// /// Get Workplaces for given customer id diff --git a/Wonky.Client/HttpInterfaces/ICountryCatalogRepository.cs b/Wonky.Client/HttpInterfaces/IOfficeCatalogRepository.cs similarity index 96% rename from Wonky.Client/HttpInterfaces/ICountryCatalogRepository.cs rename to Wonky.Client/HttpInterfaces/IOfficeCatalogRepository.cs index 599f493d..f905a02d 100644 --- a/Wonky.Client/HttpInterfaces/ICountryCatalogRepository.cs +++ b/Wonky.Client/HttpInterfaces/IOfficeCatalogRepository.cs @@ -28,9 +28,9 @@ public interface ICountryCatalogRepository /// Get a paged sales item list /// /// - /// + /// /// - Task> GetSalesItemsPaged(string countryCode, CatalogPaging paging); + Task> GetSalesItemsPaged(string countryCode, CatalogPager pager); /// /// Get sales item by id diff --git a/Wonky.Client/HttpInterfaces/ICountryCustomerHistoryRepository.cs b/Wonky.Client/HttpInterfaces/IOfficeCustomerHistoryRepository.cs similarity index 100% rename from Wonky.Client/HttpInterfaces/ICountryCustomerHistoryRepository.cs rename to Wonky.Client/HttpInterfaces/IOfficeCustomerHistoryRepository.cs diff --git a/Wonky.Client/HttpInterfaces/ICountryCustomerRepository.cs b/Wonky.Client/HttpInterfaces/IOfficeCustomerRepository.cs similarity index 100% rename from Wonky.Client/HttpInterfaces/ICountryCustomerRepository.cs rename to Wonky.Client/HttpInterfaces/IOfficeCustomerRepository.cs diff --git a/Wonky.Client/HttpInterfaces/ICountryReportRepository.cs b/Wonky.Client/HttpInterfaces/IOfficeReportRepository.cs similarity index 100% rename from Wonky.Client/HttpInterfaces/ICountryReportRepository.cs rename to Wonky.Client/HttpInterfaces/IOfficeReportRepository.cs diff --git a/Wonky.Client/HttpRepository/AdvisorActivityRepository.cs b/Wonky.Client/HttpRepository/AdvisorActivityRepository.cs index 098a089c..fd63cc42 100644 --- a/Wonky.Client/HttpRepository/AdvisorActivityRepository.cs +++ b/Wonky.Client/HttpRepository/AdvisorActivityRepository.cs @@ -36,7 +36,7 @@ public class AdvisorActivityRepository : IAdvisorActivityRepository }; private readonly NavigationManager _navigation; - private ILogger _logger; + private readonly ILogger _logger; private readonly HttpClient _client; private readonly ApiConfig _api; @@ -166,7 +166,7 @@ public class AdvisorActivityRepository : IAdvisorActivityRepository { Code = 404, IsSuccess = false, - Message = "Uventet svare fra server", + Message = "Uventet svar fra server", Id = "" }; } diff --git a/Wonky.Client/HttpRepository/AdvisorCatalogRepository.cs b/Wonky.Client/HttpRepository/AdvisorCatalogRepository.cs deleted file mode 100644 index 63d270cb..00000000 --- a/Wonky.Client/HttpRepository/AdvisorCatalogRepository.cs +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// - -using System.Collections.Generic; -using System.Linq; -using System.Net.Http; -using System.Net.Http.Json; -using System.Text.Json; -using System.Threading.Tasks; -using Wonky.Client.Features; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.WebUtilities; -using Microsoft.Extensions.Options; -using Wonky.Client.HttpInterfaces; -using Wonky.Entity.Configuration; -using Wonky.Entity.DTO; -using Wonky.Entity.Requests; -using Wonky.Entity.Views; - -namespace Wonky.Client.HttpRepository; - -public class AdvisorCatalogRepository : IAdvisorCatalogRepository -{ - private readonly JsonSerializerOptions _options = new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true - }; - - private readonly NavigationManager _navigation; - private ILogger _logger; - private readonly HttpClient _client; - private readonly ApiConfig _apiConfig; - - public AdvisorCatalogRepository(HttpClient client, - ILogger logger, - NavigationManager navigation, IOptions configuration) - { - _client = client; - _logger = logger; - _navigation = navigation; - _apiConfig = configuration.Value; - } - - /// - /// Get a paged sales item list - /// - /// - /// - public async Task> GetSalesItemsPaged(CatalogPaging pagingParameters) - { - var queryString = new Dictionary - { - ["pageNumber"] = pagingParameters.PageNumber.ToString(), - ["pageSize"] = pagingParameters.PageSize.ToString(), - ["orderBy"] = pagingParameters.OrderBy, - ["searchColumn"] = pagingParameters.SearchColumn, - ["searchTerm"] = pagingParameters.SearchTerm, - ["selectGroup"] = pagingParameters.SelectGroup == "0" ? "" : pagingParameters.SelectGroup, - }; - var response = await _client - .GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.Catalog}/page", queryString)); - - if (!response.IsSuccessStatusCode) - { - return new PagingResponse - { - Items = new List(), - MetaData = new MetaData() - }; - } - var content = await response.Content.ReadAsStringAsync(); - - var pagingResponse = new PagingResponse - { - Items = JsonSerializer.Deserialize>(content, _options), - MetaData = JsonSerializer.Deserialize( - response.Headers.GetValues("X-Pagination").First(), _options) - }; - return pagingResponse; - } - - /// - /// Get a paged sales item list for country - /// - /// - /// - /// - public async Task> GetSalesItemsPaged(CatalogPaging pagingParameters, string countryCode) - { - var queryString = new Dictionary - { - ["pageNumber"] = pagingParameters.PageNumber.ToString(), - ["pageSize"] = pagingParameters.PageSize.ToString(), - ["orderBy"] = pagingParameters.OrderBy, - ["searchColumn"] = pagingParameters.SearchColumn, - ["searchTerm"] = pagingParameters.SearchTerm, - ["selectGroup"] = pagingParameters.SelectGroup == "0" ? "" : pagingParameters.SelectGroup, - }; - var response = await _client - .GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.Catalog}/page", queryString)); - - if (!response.IsSuccessStatusCode) - { - return new PagingResponse - { - Items = new List(), - MetaData = new MetaData() - }; - } - var content = await response.Content.ReadAsStringAsync(); - - var pagingResponse = new PagingResponse - { - Items = JsonSerializer.Deserialize>(content, _options), - MetaData = JsonSerializer.Deserialize( - response.Headers.GetValues("X-Pagination").First(), _options) - }; - return pagingResponse; - } - - /// - /// Get sales item by id - /// - /// - /// - public async Task GetSalesItemId(string salesItemId) - { - var salesItem = await _client - .GetFromJsonAsync($"{_apiConfig.Catalog}/{salesItemId}"); - return salesItem ?? new SalesItemView(); - } - - /// - /// Overload Get sales item by sku and country code - /// - /// - /// - /// - public async Task GetSalesItemSku(string countryCode, string sku) - { - var salesItem = await _client.GetFromJsonAsync($"{_apiConfig.Catalog}/sku/{countryCode}/{sku}"); - return salesItem ?? new SalesItemView(); - } - - /// - /// Get sales item by variant id - /// - /// - /// - public async Task GetSalesVariantId(string variantId) - { - var salesItem = await _client - .GetFromJsonAsync($"{_apiConfig.Catalog}/variant/{variantId}"); - return salesItem ?? new SalesItemView(); - } - - /// - /// Complete catalog for print - /// - /// - public async Task> GetPriceList() - { - return await _client.GetFromJsonAsync>($"{_apiConfig.Catalog}", _options); - } - - /// - /// Complete catalog for print country - /// - /// - /// - public async Task> GetPriceList(string countryCode) - { - return await _client.GetFromJsonAsync>($"{_apiConfig.Catalog}/{countryCode}", _options); - } -} \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/WorkplaceRepository.cs b/Wonky.Client/HttpRepository/AdvisorWorkplaceRepository.cs similarity index 94% rename from Wonky.Client/HttpRepository/WorkplaceRepository.cs rename to Wonky.Client/HttpRepository/AdvisorWorkplaceRepository.cs index 5bd5b54d..ec67ba9a 100644 --- a/Wonky.Client/HttpRepository/WorkplaceRepository.cs +++ b/Wonky.Client/HttpRepository/AdvisorWorkplaceRepository.cs @@ -24,7 +24,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.HttpRepository; -public class WorkplaceRepository : IWorkplaceRepository +public class AdvisorWorkplaceRepository : IAdvisorWorkplaceRepository { private readonly JsonSerializerOptions? _options = new JsonSerializerOptions { @@ -32,12 +32,12 @@ public class WorkplaceRepository : IWorkplaceRepository }; private readonly NavigationManager _navigation; - private ILogger _logger; + private ILogger _logger; private readonly HttpClient _client; private readonly ApiConfig _api; - public WorkplaceRepository(HttpClient client, - ILogger logger, + public AdvisorWorkplaceRepository(HttpClient client, + ILogger logger, NavigationManager navigation, IOptions configuration) { diff --git a/Wonky.Client/HttpRepository/CountryCatalogRepository.cs b/Wonky.Client/HttpRepository/CountryCatalogRepository.cs index a1006d0d..f8f18e64 100644 --- a/Wonky.Client/HttpRepository/CountryCatalogRepository.cs +++ b/Wonky.Client/HttpRepository/CountryCatalogRepository.cs @@ -41,7 +41,7 @@ public class CountryCatalogRepository : ICountryCatalogRepository private readonly NavigationManager _navigation; private ILogger _logger; private readonly HttpClient _client; - private readonly ApiConfig _apiConfig; + private readonly ApiConfig _api; public CountryCatalogRepository(HttpClient client, ILogger logger, @@ -50,28 +50,28 @@ public class CountryCatalogRepository : ICountryCatalogRepository _client = client; _logger = logger; _navigation = navigation; - _apiConfig = configuration.Value; + _api = configuration.Value; } /// /// Get a paged sales item list /// /// - /// + /// /// - public async Task> GetSalesItemsPaged(string countryCode, CatalogPaging paging) + public async Task> GetSalesItemsPaged(string countryCode, CatalogPager pager) { var queryString = new Dictionary { - ["pageNumber"] = paging.PageNumber.ToString(), - ["pageSize"] = paging.PageSize.ToString(), - ["orderBy"] = paging.OrderBy, - ["searchColumn"] = paging.SearchColumn, - ["searchTerm"] = paging.SearchTerm, - ["selectGroup"] = paging.SelectGroup == "0" ? "" : paging.SelectGroup + ["pageNumber"] = pager.PageNumber.ToString(), + ["pageSize"] = pager.PageSize.ToString(), + ["orderBy"] = pager.OrderBy, + ["searchColumn"] = pager.SearchColumn, + ["searchTerm"] = pager.SearchTerm, + ["selectGroup"] = pager.SelectGroup == "0" ? "" : pager.SelectGroup }; var response = await _client - .GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.Catalog}/country/{countryCode}/page", queryString)); + .GetAsync(QueryHelpers.AddQueryString($"{_api.Catalog}/{countryCode}/page", queryString)); if (!response.IsSuccessStatusCode) { @@ -102,7 +102,7 @@ public class CountryCatalogRepository : ICountryCatalogRepository public async Task GetSalesItemId(string countryCode, string salesItemId) { var salesItem = await _client - .GetFromJsonAsync($"{_apiConfig.Catalog}/country/{countryCode}/{salesItemId}"); + .GetFromJsonAsync($"{_api.Catalog}/{countryCode}/{salesItemId}"); return salesItem ?? new SalesItemView(); } @@ -114,7 +114,7 @@ public class CountryCatalogRepository : ICountryCatalogRepository /// public async Task GetSalesItemSku(string countryCode, string sku) { - var salesItem = await _client.GetFromJsonAsync($"{_apiConfig.Catalog}/country/{countryCode}/sku/{sku}"); + var salesItem = await _client.GetFromJsonAsync($"{_api.Catalog}/{countryCode}/sku/{sku}"); return salesItem ?? new SalesItemView(); } @@ -127,7 +127,7 @@ public class CountryCatalogRepository : ICountryCatalogRepository public async Task GetSalesVariantId(string countryCode, string variantId) { var salesItem = await _client - .GetFromJsonAsync($"{_apiConfig.Catalog}/country/{countryCode}/variant/{variantId}"); + .GetFromJsonAsync($"{_api.Catalog}/{countryCode}/variant/{variantId}"); return salesItem ?? new SalesItemView(); } @@ -138,6 +138,6 @@ public class CountryCatalogRepository : ICountryCatalogRepository /// public async Task> GetPriceList(string countryCode) { - return await _client.GetFromJsonAsync>($"{_apiConfig.Catalog}/country/{countryCode}", _options); + return await _client.GetFromJsonAsync>($"{_api.Catalog}/{countryCode}", _options); } } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/CountryCustomerHistoryRepository.cs b/Wonky.Client/HttpRepository/OfficeCustomerHistoryRepository.cs similarity index 100% rename from Wonky.Client/HttpRepository/CountryCustomerHistoryRepository.cs rename to Wonky.Client/HttpRepository/OfficeCustomerHistoryRepository.cs diff --git a/Wonky.Client/HttpRepository/CountryCustomerRepository.cs b/Wonky.Client/HttpRepository/OfficeCustomerRepository.cs similarity index 100% rename from Wonky.Client/HttpRepository/CountryCustomerRepository.cs rename to Wonky.Client/HttpRepository/OfficeCustomerRepository.cs diff --git a/Wonky.Client/HttpRepository/CountryReportRepository.cs b/Wonky.Client/HttpRepository/OfficeReportRepository.cs similarity index 100% rename from Wonky.Client/HttpRepository/CountryReportRepository.cs rename to Wonky.Client/HttpRepository/OfficeReportRepository.cs diff --git a/Wonky.Client/Models/QuoteCallbackArgs.cs b/Wonky.Client/Models/QCallbackArgs.cs similarity index 88% rename from Wonky.Client/Models/QuoteCallbackArgs.cs rename to Wonky.Client/Models/QCallbackArgs.cs index 3116308a..7813233f 100644 --- a/Wonky.Client/Models/QuoteCallbackArgs.cs +++ b/Wonky.Client/Models/QCallbackArgs.cs @@ -1,6 +1,6 @@ namespace Wonky.Client.Models; -public class QuoteCallbackArgs +public class QCallbackArgs { /// /// ESalesNumber diff --git a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor b/Wonky.Client/Pages/AdvisorActivityCreatePage.razor similarity index 99% rename from Wonky.Client/Pages/AdvisorCreateActivityPage.razor rename to Wonky.Client/Pages/AdvisorActivityCreatePage.razor index 999734c4..5239b816 100644 --- a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor +++ b/Wonky.Client/Pages/AdvisorActivityCreatePage.razor @@ -325,7 +325,7 @@ else } - + \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor.cs b/Wonky.Client/Pages/AdvisorActivityCreatePage.razor.cs similarity index 91% rename from Wonky.Client/Pages/AdvisorCreateActivityPage.razor.cs rename to Wonky.Client/Pages/AdvisorActivityCreatePage.razor.cs index abf2b7cc..11462d6a 100644 --- a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorActivityCreatePage.razor.cs @@ -30,23 +30,23 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdvisorCreateActivityPage : IDisposable +public partial class AdvisorActivityCreatePage : IDisposable { // Parameters [CascadingParameter] DraftStateProvider DraftProvider { get; set; } [Parameter] public string CompanyId { get; set; } // Services - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public HttpInterceptorService Interceptor { 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; } - [Inject] public IAdvisorCatalogRepository AdvisorCatalogCrm { get; set; } - [Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; } - [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; } - [Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; } - [Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; } + [Inject] public ICountryCatalogRepository Catalog { get; set; } + [Inject] public IAdvisorCustomerRepository Companies { get; set; } + [Inject] public IAdvisorActivityRepository Actitivites { get; set; } + [Inject] public IAdvisorReportRepository Reports { get; set; } + [Inject] public IAdvisorCustomerHistoryRepository CustomerHistory { get; set; } // variables private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true}; private SalesItemView SelectedItem { get; set; } = new(); @@ -64,13 +64,13 @@ public partial class AdvisorCreateActivityPage : IDisposable private bool InvalidActivity { get; set; } = true; private bool ReportClosed { get; set; } private bool Working { get; set; } = true; - private UserInfoView ThisUserInfo { get; set; } = new(); + private UserInfoView SalesRep { get; set; } = new(); private DateTime SelectedDate { get; set; } private string OldPhone { get; set; } = ""; private string PromptDateConfirm { get; set; } = ""; // MODAL DIALOGS - private PriceListModal PriceListModal { get; set; } = new(); + private PriceCatalogModal PriceCatalogModal { get; set; } = new(); private ProductHistoryModal HistoryModal { get; set; } = new(); private ProductPriceHistoryModal PriceHistoryModal { get; set; } = new(); private ConfirmWorkDateModal ConfirmWorkDateModal { get; set; } = new(); @@ -93,9 +93,9 @@ public partial class AdvisorCreateActivityPage : IDisposable // User Preferences UserPrefs = await Profiles.GetPreferences(); // User Info - ThisUserInfo = await Storage.GetItemAsync("_xu"); + SalesRep = await Storage.GetItemAsync("_xu"); // Fetch Customer from http - Company = await CompanyRepo.GetCompanyById(CompanyId); + Company = await Companies.GetCompanyById(CompanyId); if (Company.HasFolded == 1) // Company has shutdown activities Activity.OrderMessage = "BEMÆRK: CVR nummer er ophørt."; @@ -113,9 +113,9 @@ public partial class AdvisorCreateActivityPage : IDisposable Activity.ActivityStatusEnum = "noSale"; Activity.VisitTypeEnum = Company.Account is "" or "NY" ? "new" : "recall"; Activity.CompanyId = Company.CompanyId; - Activity.SalesRepId = ThisUserInfo.Id; - Activity.SalesRep = ThisUserInfo.Advisor; - Activity.CountryCode = ThisUserInfo.CountryCode; + Activity.SalesRepId = SalesRep.Id; + Activity.SalesRep = SalesRep.Advisor; + Activity.CountryCode = SalesRep.CountryCode; Activity.Account = Company.Account; Activity.VatNumber = Company.VatNumber; Activity.Email = Company.Email; @@ -134,7 +134,7 @@ public partial class AdvisorCreateActivityPage : IDisposable // Initialize date variable SelectedDate = string.IsNullOrWhiteSpace(UserPrefs.WorkDate) ? DateTime.Now : DateTime.Parse(UserPrefs.WorkDate); // raise flag if report is closed - ReportClosed = await AdvisorReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}"); + ReportClosed = await Reports.ReportExist($"{SelectedDate:yyyy-MM-dd}"); // Ask for confirmation of date Logger.LogDebug("Preferences.DateConfirmed => {}", UserPrefs.DateConfirmed); if (!UserPrefs.DateConfirmed) @@ -182,7 +182,7 @@ public partial class AdvisorCreateActivityPage : IDisposable // product inventory has not been updated // send rpc call to sync ERP to CRM Toast.ShowInfo("Vent mens data synkroniseres ...", "ERP til CRM ..."); - var ts = await HistoryRepo.InvoiceErpToCrmRpc(CompanyId, Company.HistorySync); + var ts = await CustomerHistory.InvoiceErpToCrmRpc(CompanyId, Company.HistorySync); while (string.IsNullOrWhiteSpace(ts)) await Task.Delay(500); // save pDate @@ -190,7 +190,7 @@ public partial class AdvisorCreateActivityPage : IDisposable // request products from backend Toast.ShowInfo("Vent mens produkt oversigt hentes", "CRM produkt liste"); - CheckList = await HistoryRepo.FetchInventory(CompanyId); + CheckList = await CustomerHistory.FetchInventory(CompanyId); if(CheckList.Any()) CheckList = CheckList.OrderBy(x => x.Description).ToList(); @@ -236,7 +236,7 @@ public partial class AdvisorCreateActivityPage : IDisposable /// private async Task WorkDateComponentCallback(string workDate) { - ReportClosed = await AdvisorReportRepo.ReportExist(workDate); + ReportClosed = await Reports.ReportExist(workDate); SelectedDate = DateTime.Parse(workDate); Activity.ActivityDate = workDate; } @@ -246,7 +246,7 @@ public partial class AdvisorCreateActivityPage : IDisposable /// private void CallPriceListModal() { - PriceListModal.Show(); + PriceCatalogModal.Show(); } /// @@ -258,7 +258,7 @@ public partial class AdvisorCreateActivityPage : IDisposable // get selected item if (string.IsNullOrWhiteSpace(sku.ItemId)) return; - SelectedItem = await AdvisorCatalogCrm.GetSalesItemId(sku.ItemId); + SelectedItem = await Catalog.GetSalesItemId(SalesRep.CountryCode.ToLower(), sku.ItemId); ShowItem = true; Price = sku.Rate; Quantity = sku.Quantity; @@ -325,14 +325,14 @@ public partial class AdvisorCreateActivityPage : IDisposable if (OldPhone != Activity.Phone) { Company.Phone = Activity.Phone; - await CompanyRepo.UpdateErpData(Company.CompanyId, Company); + await Companies.UpdateErpData(Company.CompanyId, Company); } // begin assembling activity Activity.ActivityDate = $"{SelectedDate:yyyy-MM-dd}"; Activity.OurRef = Activity.ActivityTypeEnum switch { - "phone" => $"T:{ThisUserInfo.FullName.Split(" ")[0]}", - "onSite" => $"B:{ThisUserInfo.FullName.Split(" ")[0]}", + "phone" => $"T:{SalesRep.FullName.Split(" ")[0]}", + "onSite" => $"B:{SalesRep.FullName.Split(" ")[0]}", _ => "" }; if (Activity.Express) @@ -361,7 +361,7 @@ public partial class AdvisorCreateActivityPage : IDisposable // debug logging Logger.LogDebug("CrmNewActivityPage => \n {}", JsonSerializer.Serialize(Activity)); // post to api - var result = await AdvisorActivityRepo.CreateActivity(Activity); + var result = await Actitivites.CreateActivity(Activity); // debug logging Logger.LogDebug("ApiResponseView => \n {}", JsonSerializer.Serialize(result)); // show result message diff --git a/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor b/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor similarity index 83% rename from Wonky.Client/Pages/AdvisorTodayActivityListPage.razor rename to Wonky.Client/Pages/AdvisorActivityTodayListPage.razor index d07ff957..f22b29a2 100644 --- a/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor +++ b/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor @@ -30,11 +30,11 @@
@if (ReportExist) { - Rapport + Rapport } else { - Rapport + Rapport }
diff --git a/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor.cs b/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor.cs similarity index 95% rename from Wonky.Client/Pages/AdvisorTodayActivityListPage.razor.cs rename to Wonky.Client/Pages/AdvisorActivityTodayListPage.razor.cs index 7005d5b8..e94b6e8c 100644 --- a/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor.cs @@ -25,10 +25,10 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdvisorTodayActivityListPage : IDisposable +public partial class AdvisorActivityTodayListPage : IDisposable { [Inject] public UserProfileService UserProfileService { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public NavigationManager Navigator { get; set; } [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; } diff --git a/Wonky.Client/Pages/AdvisorViewActivityPage.razor b/Wonky.Client/Pages/AdvisorActivityViewPage.razor similarity index 100% rename from Wonky.Client/Pages/AdvisorViewActivityPage.razor rename to Wonky.Client/Pages/AdvisorActivityViewPage.razor diff --git a/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs b/Wonky.Client/Pages/AdvisorActivityViewPage.razor.cs similarity index 96% rename from Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs rename to Wonky.Client/Pages/AdvisorActivityViewPage.razor.cs index c60e6a47..13d09881 100644 --- a/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorActivityViewPage.razor.cs @@ -29,13 +29,13 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdvisorViewActivityPage : IDisposable +public partial class AdvisorActivityViewPage : IDisposable { [Parameter] public string CompanyId { get; set; } = ""; [Parameter] public string OrderId { get; set; } = ""; [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public IToastService Toaster { get; set; } [Inject] public NavigationManager Navigator { get; set; } private ReportItemView ReportItem { get; set; } = new(); diff --git a/Wonky.Client/Pages/AdvisorCatalogPage.razor b/Wonky.Client/Pages/AdvisorCatalogPage.razor deleted file mode 100644 index 2b67b483..00000000 --- a/Wonky.Client/Pages/AdvisorCatalogPage.razor +++ /dev/null @@ -1,52 +0,0 @@ -@* -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// -*@ - -@using Wonky.Client.Components -@using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Advisor")] -@page "/advisor/price-catalog" -Innotec Produkt Katalog -
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- -
-
- -@if (Working) -{ - -} diff --git a/Wonky.Client/Pages/AdvisorCatalogPage.razor.cs b/Wonky.Client/Pages/AdvisorCatalogPage.razor.cs deleted file mode 100644 index ef9426af..00000000 --- a/Wonky.Client/Pages/AdvisorCatalogPage.razor.cs +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// - -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Blazored.LocalStorage; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Microsoft.AspNetCore.Components; -using Wonky.Client.Components; -using Wonky.Client.HttpInterfaces; -using Wonky.Client.Services; -using Wonky.Entity.DTO; -using Wonky.Entity.Requests; -using Wonky.Entity.Views; - -namespace Wonky.Client.Pages; - -public partial class AdvisorCatalogPage : IDisposable -{ - [Inject] public ILocalStorageService Storage { get; set; } - [Inject] public IAdvisorCatalogRepository ItemRepo { get; set; } - [Inject] public HttpInterceptorService Interceptor { get; set; } - [Inject] public UserProfileService ProfileService { get; set; } - private List Items { get; set; } = new(); - private MetaData MetaInfo { get; set; } = new(); - private CatalogPaging _page = new(); - private UserPref Prefs = new(); - private UserInfoView UserInfo { get; set; } = new(); - private bool Working { get; set; } = true; - - protected override async Task OnInitializedAsync() - { - Prefs = await ProfileService.GetPreferences(); - UserInfo = await Storage.GetItemAsync("_xu"); - - _page.OrderBy = Prefs.ItemSort; - _page.SearchColumn = Prefs.ItemSearch; - _page.PageSize = Convert.ToInt32(Prefs.PageSize); - - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - - await FetchSalesItems(); - } - - private async Task SetSearchPhrase(string searchTerm) - { - Items = new List(); - _page.PageNumber = 1; - _page.SearchTerm = searchTerm; - await FetchSalesItems(); - } - - private async Task SetPageSize(string pageSize) - { - Items = new List(); - _page.PageSize = Convert.ToInt32(pageSize); - _page.PageNumber = 1; - await FetchSalesItems(); - } - - private async Task SetSearchCol(string columnName) - { - Items = new List(); - _page.PageNumber = 1; - _page.SearchColumn = columnName; - await FetchSalesItems(); - } - - private async Task SetSortCol(string orderBy) - { - Items = new List(); - _page.OrderBy = orderBy; - await FetchSalesItems(); - } - - private async Task SetSelectedPage(int page) - { - Items = new List(); - _page.PageNumber = page; - await FetchSalesItems(); - } - - private async Task SetGroupCol(string groupFilter) - { - Items = new List(); - _page.PageNumber = 1; - _page.SelectGroup = groupFilter; - await FetchSalesItems(); - } - - private async Task FetchSalesItems() - { - Working = true; - var pagingResponse = await ItemRepo.GetSalesItemsPaged(_page); - Working = false; - Items = pagingResponse.Items!; - MetaInfo = pagingResponse.MetaData; - - } - - - public void Dispose() => Interceptor.DisposeEvent(); - -} \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor b/Wonky.Client/Pages/AdvisorCustomerCreatePage.razor similarity index 100% rename from Wonky.Client/Pages/AdvisorCreateCustomerPage.razor rename to Wonky.Client/Pages/AdvisorCustomerCreatePage.razor diff --git a/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerCreatePage.razor.cs similarity index 98% rename from Wonky.Client/Pages/AdvisorCreateCustomerPage.razor.cs rename to Wonky.Client/Pages/AdvisorCustomerCreatePage.razor.cs index 34a65b36..7d3601d9 100644 --- a/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCustomerCreatePage.razor.cs @@ -37,10 +37,10 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages { - public partial class AdvisorCreateCustomerPage : IDisposable + public partial class AdvisorCustomerCreatePage : IDisposable { [Inject] public IToastService Toaster { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public ILocalStorageService Storage { get; set; } [Inject] public NavigationManager Navigator { get; set; } [Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; } diff --git a/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor b/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor index a372f041..3bac9e39 100644 --- a/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor @@ -25,7 +25,7 @@

@Company.Name

Nyt Besøg diff --git a/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor.cs index a79447c9..d2287f12 100644 --- a/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor.cs @@ -28,13 +28,13 @@ namespace Wonky.Client.Pages; public partial class AdvisorCustomerInventoryListPage : IDisposable { - [Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; } - [Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; } + [Inject] public IAdvisorCustomerHistoryRepository CustomerHistory { get; set; } + [Inject] public IAdvisorCustomerRepository Customers { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public IToastService Toaster { get; set; } [Inject] public ILogger Logger { get; set; } [Inject] public ILocalStorageService Storage { get; set; } - [Inject] public IAdvisorCatalogRepository AdvisorCatalogRepo { get; set; } + [Inject] public ICountryCatalogRepository Catalog { get; set; } [CascadingParameter] public DraftStateProvider DraftStateProvider { get; set; } = new(); [Parameter] public string CompanyId { get; set; } = ""; @@ -53,7 +53,7 @@ public partial class AdvisorCustomerInventoryListPage : IDisposable Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); - Company = await CompanyRepo.GetCompanyById(CompanyId); + Company = await Customers.GetCompanyById(CompanyId); // fetch product inventory await FetchProductInventory(); @@ -64,7 +64,7 @@ public partial class AdvisorCustomerInventoryListPage : IDisposable private async Task OnReorderCallback(string sku) { // fetch item from http repo - SalesItem = await AdvisorCatalogRepo.GetSalesItemSku(Company.CountryCode.ToLower(), sku); + SalesItem = await Catalog.GetSalesItemSku(Company.CountryCode.ToLower(), sku); ReorderModal.Show(); } @@ -92,7 +92,7 @@ public partial class AdvisorCustomerInventoryListPage : IDisposable } Logger.LogDebug("pulling products from backend"); // fetch product history - Inventory = await HistoryRepo.FetchInventory(CompanyId); + Inventory = await CustomerHistory.FetchInventory(CompanyId); // default sort order by description if (Inventory.Any()) Inventory = Inventory.OrderBy(x => x.Description).ToList(); diff --git a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor b/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor deleted file mode 100644 index f464d628..00000000 --- a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor +++ /dev/null @@ -1,144 +0,0 @@ -@* -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// -*@ - -@using Microsoft.AspNetCore.Authorization -@using Wonky.Client.Components -@attribute [Authorize(Roles = "Advisor")] -@page "/advisor/customers/{CompanyId}/orders/{OrderId}" -@_reportItem.ESalesNumber - @_reportItem.Company.Name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @if (_reportItem.Express) - { -
- -
- } -
-

@_reportItem.Company.Name

- @if (_reportItem.Express) - { -

HASTER

- } - @if (_reportItem.VisitTypeEnum.ToLower() == "phone" || _reportItem.OurRef.Contains("T:")) - { -
TELEFONORDRE
- } - @if (_reportItem.StatusTypeEnum is "Quote") - { -
TILBUD
- } -
-
Dato@_reportItem.OrderDateKonto@_reportItem.Company.Account
Telefon@_reportItem.Company.PhoneKøber@_reportItem.YourRef
CVR/VAT@_reportItem.Company.VatNumberRekvisition@_reportItem.ReferenceNumber
Navn@_reportItem.Company.NameLev.Navn@_reportItem.DlvName
Adresse@_reportItem.Company.Address1Lev.Adresse@_reportItem.DlvAddress1
Adresse@_reportItem.Company.Address2Lev.Adresse@_reportItem.DlvAddress2
Postnr By@_reportItem.Company.ZipCode @_reportItem.Company.CityLev.Postnr By@_reportItem.DlvZipCity
- - - - - - - - - - - - - @foreach (var line in _reportItem.Lines) - { - - - - - - - - - } - - - - - - @if (_reportItem.Express) - { - - - } - -
AntalVarnrBeskrivelsePrisR%Beløb
@line.Quantity@line.Sku@line.Description@($"{line.Price:N2}")@($"{line.Discount:N2}")@($"{line.LineSum:N2}")
Ordresum@_reportItem.OrderAmount
-
HASTER
-
-@if (!string.IsNullOrWhiteSpace(_reportItem.OfficeNote)) -{ -
-

@_reportItem.OfficeNote

-
-} - - -@if (Working) -{ - -} diff --git a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.cs deleted file mode 100644 index 4c1bbd00..00000000 --- a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.cs +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// - - -using System.Text; -using System.Text.Json; -using Blazored.Toast.Services; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Forms; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpInterfaces; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; -using Wonky.Entity.Views; -using System.Security.Claims; -using Blazored.LocalStorage; -using Wonky.Client.Services; - -namespace Wonky.Client.Pages; - -public partial class AdvisorCustomerOrderViewPage : IDisposable -{ - [Parameter] public string CompanyId { get; set; } = ""; - [Parameter] public string OrderId { get; set; } = ""; - [Inject] public HttpInterceptorService Interceptor { get; set; } - [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; } - [Inject] public ISystemSendMailService MailService { get; set; } - [Inject] public ILocalStorageService Storage { get; set; } - [Inject] public ISystemUserRepository SystemUserRepo { get; set; } - [Inject] public ILogger Logger { get; set; } - [Inject] public IToastService Toast { get; set; } - private ReportItemView _reportItem { get; set; } = new(); - private bool _isNotified { get; set; } - private bool Working { get; set; } = true; - - private readonly JsonSerializerOptions _options = new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true - }; - - protected override async Task OnInitializedAsync() - { - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - // fetch order from backend - _reportItem = await AdvisorActivityRepo.GetReportItem(OrderId); - Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(_reportItem, _options)); - Working = false; - } - - /// - /// Set activity process state to express. Send confirmation notification to salesRep - /// - private async Task SetExpressState() - { - // disable doubled actions - if (Working) - return; - Working = true; - Logger.LogDebug("GetExpressState => {}", JsonSerializer.Serialize(_reportItem, _options)); - // send request to backend - var responseView = await AdvisorActivityRepo.GetExpressState(_reportItem.ActivityId); - Logger.LogDebug("SetExpressState => responseView <= {} ", JsonSerializer.Serialize(responseView)); - // get user info from storage - var user = await Storage.GetItemAsync("_xu"); - // fetch sales rep from response - var salesRep = await SystemUserRepo.GetAdvisorInfo(responseView.Id); - Logger.LogDebug("SetExpressState => salesRep => {}", JsonSerializer.Serialize(salesRep)); - // create email notification body - var body = new StringBuilder(); - body.AppendLine($"Kvittering for modtagelse af hasteordre {_reportItem.ESalesNumber}"); - body.AppendLine($"Konto : {_reportItem.Company.Account}"); - body.AppendLine($"Navn : {_reportItem.Company.Name}"); - body.AppendLine( - $"Post By : {salesRep.CountryCode.ToUpper()}-{_reportItem.Company.ZipCode} {_reportItem.Company.City}"); - body.AppendLine(); - body.AppendLine("Med venlig hilsen"); - body.AppendLine($"{user.FullName}"); - body.AppendLine($"{user.PhoneNumber}"); - // create a list of mail addresses - var sendTo = new List - { - new() - { - Email = salesRep.Email, - Name = $"{salesRep.FirstName} {salesRep.LastName}" - } - }; - // create an email - var msg = new EmailMessage - { - Body = body.ToString(), - Subject = $"Haste ordre til {_reportItem.Company.Name} er modtaget.", - To = sendTo, - IsBodyHtml = false - }; - Logger.LogDebug("SetExpressState Notification => \n {}", JsonSerializer.Serialize(msg)); - // send a system generated email - var sendMail = await MailService.SendMail("System", msg); - // result notification - if (sendMail.IsSuccess) - { - Toast - .ShowSuccess( - $"Status er opdateret og notifikation sendt til {salesRep.FirstName}.", "OK"); - } - else - { - Toast - .ShowWarning( - $"Notifikation til {salesRep.FirstName} kunne ikke sendes. {sendMail.Message}", "ADVARSEL"); - } - // disable further notifications - _isNotified = true; - Working = false; - } - - public void Dispose() - { - Interceptor.DisposeEvent(); - } -} \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.css b/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.css deleted file mode 100644 index 6396fa53..00000000 --- a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.css +++ /dev/null @@ -1,6 +0,0 @@ -#watermark { - position: fixed; - z-index: 999; - top: 10px; - right: 0; -} \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorQuoteListPage.razor b/Wonky.Client/Pages/AdvisorQuoteListPage.razor index fe427ce2..1243c563 100644 --- a/Wonky.Client/Pages/AdvisorQuoteListPage.razor +++ b/Wonky.Client/Pages/AdvisorQuoteListPage.razor @@ -18,7 +18,7 @@ @using Wonky.Client.Models @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Advisor")] -@page "/advisor/open-quotes" +@page "/advisor/agreements" Aftaler og Tilbud - Oversigt
diff --git a/Wonky.Client/Pages/AdvisorQuoteListPage.razor.cs b/Wonky.Client/Pages/AdvisorQuoteListPage.razor.cs index 882d02b4..c490dc96 100644 --- a/Wonky.Client/Pages/AdvisorQuoteListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorQuoteListPage.razor.cs @@ -54,7 +54,7 @@ public partial class AdvisorQuoteListPage : IDisposable }; } - private async Task UpdateQuoteCallback(QuoteCallbackArgs args) + private async Task UpdateQuoteCallback(QCallbackArgs args) { Working = true; // find the quote to update diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor b/Wonky.Client/Pages/AdvisorReportCreatePage.razor index 946913dc..afa00b38 100644 --- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor +++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor @@ -19,7 +19,7 @@ @using Wonky.Client.Components @using Wonky.Entity.Views @attribute [Authorize(Roles = "Advisor")] -@page "/advisor/sales-reports/new" +@page "/advisor/reports/new" Opret Dagsrapport for @_workDate diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs index 7c16c1fb..42b8b62d 100644 --- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs @@ -70,7 +70,7 @@ public partial class AdvisorReportCreatePage : IDisposable _workDate = DateTime.Parse(Prefs.WorkDate); if(await AdvisorReportRepo.ReportExist(Prefs.WorkDate)) - Navigator.NavigateTo($"/advisor/sales-reports/view/{_workDate:yyyy-MM-dd}"); + Navigator.NavigateTo($"/advisor/reports/view/{_workDate:yyyy-MM-dd}"); BeginLeave = _workDate; EndLeave = _workDate; @@ -137,7 +137,7 @@ public partial class AdvisorReportCreatePage : IDisposable await ProfileService.SetKmMorning(0); // reset date confirmed await ProfileService.SetDateConfirmed(false); - Navigator.NavigateTo($"/advisor/sales-reports/view/{_workDate:yyyy-MM-dd}"); + Navigator.NavigateTo($"/advisor/reports/view/{_workDate:yyyy-MM-dd}"); } /// /// Submit report @@ -252,7 +252,7 @@ public partial class AdvisorReportCreatePage : IDisposable var data = await AdvisorReportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}"); if(data.ReportClosed) - Navigator.NavigateTo($"/advisor/sales-reports/view/{_workDate:yyyy-MM-dd}"); + Navigator.NavigateTo($"/advisor/reports/view/{_workDate:yyyy-MM-dd}"); Report.Figures = data.ReportData; InitialValues = data.ReportData; diff --git a/Wonky.Client/Pages/AdvisorReportListPage.razor b/Wonky.Client/Pages/AdvisorReportListPage.razor index 64bc5bf0..d91ff99b 100644 --- a/Wonky.Client/Pages/AdvisorReportListPage.razor +++ b/Wonky.Client/Pages/AdvisorReportListPage.razor @@ -18,7 +18,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Advisor")] -@page "/advisor/sales-reports" +@page "/advisor/reports" Rapport Arkiv
diff --git a/Wonky.Client/Pages/AdvisorReportListPage.razor.cs b/Wonky.Client/Pages/AdvisorReportListPage.razor.cs index 39ab3422..a250c0fe 100644 --- a/Wonky.Client/Pages/AdvisorReportListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportListPage.razor.cs @@ -49,7 +49,7 @@ public partial class AdvisorReportListPage : IDisposable private void ShowThisReport(string reportDate) { Logger.LogDebug("CrmReportListPage => ShowThisReport <= {}", reportDate); - Navigator.NavigateTo($"/advisor/sales-reports/view/{reportDate}"); + Navigator.NavigateTo($"/advisor/reports/view/{reportDate}"); } public void Dispose() diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor b/Wonky.Client/Pages/AdvisorReportViewPage.razor index 80f38180..aa9607f0 100644 --- a/Wonky.Client/Pages/AdvisorReportViewPage.razor +++ b/Wonky.Client/Pages/AdvisorReportViewPage.razor @@ -19,7 +19,7 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Models @attribute [Authorize(Roles = "Advisor,Admin")] -@page "/advisor/sales-reports/view/{ReportDate}" +@page "/advisor/reports/view/{ReportDate}" @Report.ReportData.Name
@@ -51,7 +51,7 @@
- + } else diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs b/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs index 639d9ec1..e2e6ca37 100644 --- a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs @@ -61,10 +61,10 @@ public partial class AdvisorReportViewPage : IDisposable switch (target) { case PTarget.OrderPage: - Navigator.NavigateTo($"/print/orders/{UserInfo.CountryCode.ToLower()}/{UserInfo.Id}/{ReportDate}?returnUrl={ReturnUrl}"); + Navigator.NavigateTo($"/report/print/orders/{UserInfo.CountryCode.ToLower()}/{UserInfo.Id}/{ReportDate}?returnUrl={ReturnUrl}"); break; case PTarget.FrontPage: - Navigator.NavigateTo($"/print/report/{UserInfo.CountryCode.ToLower()}/{UserInfo.Id}/{ReportDate}?returnUrl={ReturnUrl}"); + Navigator.NavigateTo($"/report/print/summary/{UserInfo.CountryCode.ToLower()}/{UserInfo.Id}/{ReportDate}?returnUrl={ReturnUrl}"); break; case PTarget.None: break; @@ -85,7 +85,7 @@ public partial class AdvisorReportViewPage : IDisposable } // ensure the browser address bar contains the correct link - Navigator.NavigateTo($"/advisor/sales-reports/view/{workDate}", false, true); + Navigator.NavigateTo($"/advisor/reports/view/{workDate}", false, true); // return if we are already at it if (Working) diff --git a/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor.cs b/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor.cs index 2a6985d6..b1a42cfb 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor.cs @@ -27,7 +27,7 @@ public partial class AdvisorWorkplaceDocumentListPage [Parameter] public string WorkplaceId { get; set; } = ""; [Inject] public HttpInterceptorService _interceptor { get; set; } - [Inject] public IWorkplaceRepository WorkplaceCrmRepo { get; set; } + [Inject] public IAdvisorWorkplaceRepository Workplaces { get; set; } private bool Working { get; set; } = true; } \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs b/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs index 8f20d76e..608e5721 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs @@ -27,7 +27,7 @@ namespace Wonky.Client.Pages; public partial class AdvisorWorkplaceListPage : IDisposable { [Parameter] public string CompanyId { get; set; } = ""; - [Inject] public IWorkplaceRepository WorkplaceCrmRepo { get; set; } + [Inject] public IAdvisorWorkplaceRepository Workplaces { get; set; } [Inject] public IAdvisorCustomerRepository _companyRepo { get; set; } [Inject] public HttpInterceptorService _interceptor { get; set; } private List _workplaces { get; set; } = new(); @@ -45,7 +45,7 @@ public partial class AdvisorWorkplaceListPage : IDisposable protected override async Task OnInitializedAsync() { Working = true; - _workplaces = await WorkplaceCrmRepo.GetWorkplaces(CompanyId); + _workplaces = await Workplaces.GetWorkplaces(CompanyId); Working = false; } diff --git a/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs b/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs index f4ee11e6..d7855125 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs @@ -29,7 +29,7 @@ public partial class AdvisorWorkplaceViewPage : IDisposable { [Parameter] public string CompanyId { get; set; } = ""; [Parameter] public string WorkplaceId { get; set; } = ""; - [Inject] public IWorkplaceRepository WorkplaceCrmRepo { get; set; } + [Inject] public IAdvisorWorkplaceRepository Workplaces { get; set; } [Inject] public IAdvisorCustomerRepository _companyRepo { get; set; } [Inject] public HttpInterceptorService _interceptor { get; set; } [Inject] public NavigationManager _navigator { get; set; } @@ -42,7 +42,7 @@ public partial class AdvisorWorkplaceViewPage : IDisposable _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); - Workplace = await WorkplaceCrmRepo.GetWorkplace(CompanyId, WorkplaceId); + Workplace = await Workplaces.GetWorkplace(CompanyId, WorkplaceId); Working = false; } @@ -54,14 +54,14 @@ public partial class AdvisorWorkplaceViewPage : IDisposable private async Task SubmitUpdate() { Working = true; - await WorkplaceCrmRepo.UpdateWorkplace(CompanyId, Workplace); + await Workplaces.UpdateWorkplace(CompanyId, Workplace); Working = false; } private async Task DeleteWorkplace() { Working = true; - await WorkplaceCrmRepo.DeleteWorkplace(CompanyId, Workplace.WorkplaceId); + await Workplaces.DeleteWorkplace(CompanyId, Workplace.WorkplaceId); _navigator.NavigateTo($"/advisor/customers/{CompanyId}/workplaces"); } diff --git a/Wonky.Client/Pages/OfficeCountryCatalogPage.razor b/Wonky.Client/Pages/CatalogCountryPage.razor similarity index 85% rename from Wonky.Client/Pages/OfficeCountryCatalogPage.razor rename to Wonky.Client/Pages/CatalogCountryPage.razor index af2e0432..49bbfd1e 100644 --- a/Wonky.Client/Pages/OfficeCountryCatalogPage.razor +++ b/Wonky.Client/Pages/CatalogCountryPage.razor @@ -15,11 +15,14 @@ // *@ -@using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Office,Warehouse")] -@page "/office/catalog/{CountryCode}" -Produkt Katalog @CountryCode +@using Wonky.Client.Components + +@attribute [Authorize(Roles = "Admin,Advisor,Office,Supervisor,Warehouse")] +@page "/catalog" +@page "/catalog/{CountryCode}" + +Produkt Katalog @CountryName
@@ -42,7 +45,7 @@
diff --git a/Wonky.Client/Pages/OfficeCountryCatalogPage.razor.cs b/Wonky.Client/Pages/CatalogCountryPage.razor.cs similarity index 57% rename from Wonky.Client/Pages/OfficeCountryCatalogPage.razor.cs rename to Wonky.Client/Pages/CatalogCountryPage.razor.cs index c49b1370..24bf960f 100644 --- a/Wonky.Client/Pages/OfficeCountryCatalogPage.razor.cs +++ b/Wonky.Client/Pages/CatalogCountryPage.razor.cs @@ -13,9 +13,11 @@ // along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] // +using System.Text.Json; using Blazored.LocalStorage; using Wonky.Client.HttpInterceptors; using Microsoft.AspNetCore.Components; +using Wonky.Client.Helpers; using Wonky.Client.HttpInterfaces; using Wonky.Client.Services; using Wonky.Entity.Requests; @@ -23,90 +25,108 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class OfficeCountryCatalogPage : IDisposable +public partial class CatalogCountryPage : IDisposable { [Inject] public ILocalStorageService Storage { get; set; } [Inject] public ICountryCatalogRepository Catalog { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public UserProfileService ProfileService { get; set; } + [Inject] public ILogger Logger { get; set; } + [Inject] public NavigationManager Navigator { get; set; } [Parameter] public string CountryCode { get; set; } = ""; - + private List Items { get; set; } = new(); private MetaData MetaInfo { get; set; } = new(); - private CatalogPaging Paging = new(); - private UserPref Prefs = new(); + private CatalogPager Pager { get; set; } = new(); + private UserPref Prefs { get; set; } = new(); private UserInfoView UserInfo { get; set; } = new(); - private bool Working { get; set; } = true; + private bool Working { get; set; } + private string CountryName { get; set; } = ""; - protected override async Task OnParametersSetAsync() + protected override async Task OnInitializedAsync() { Prefs = await ProfileService.GetPreferences(); UserInfo = await Storage.GetItemAsync("_xu"); + + Pager.OrderBy = Prefs.ItemSort; - Paging.OrderBy = Prefs.ItemSort; - Paging.SearchColumn = Prefs.ItemSearch; - Paging.PageSize = Convert.ToInt32(Prefs.PageSize); + Pager.SearchColumn = Prefs.ItemSearch; + Pager.PageSize = Convert.ToInt32(Prefs.PageSize); Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); + + if (string.IsNullOrWhiteSpace(CountryCode)) + { + while (string.IsNullOrWhiteSpace(UserInfo.CountryCode)) + await Task.Delay(500); + + CountryCode = UserInfo.CountryCode.ToLower(); + Navigator.NavigateTo($"/catalog/{CountryCode}", false, true); + } - await FetchSalesItems(); + CountryName = Utils.CountryName(CountryCode); + await GetCatalogPaged(); } private async Task SetSearchPhrase(string searchTerm) { Items = new List(); - Paging.PageNumber = 1; - Paging.SearchTerm = searchTerm; - await FetchSalesItems(); + Pager.PageNumber = 1; + Pager.SearchTerm = searchTerm; + await GetCatalogPaged(); } private async Task SetPageSize(string pageSize) { Items = new List(); - Paging.PageSize = Convert.ToInt32(pageSize); - Paging.PageNumber = 1; - await FetchSalesItems(); + Pager.PageSize = Convert.ToInt32(pageSize); + Pager.PageNumber = 1; + await GetCatalogPaged(); } private async Task SetSearchCol(string columnName) { Items = new List(); - Paging.PageNumber = 1; - Paging.SearchColumn = columnName; - await FetchSalesItems(); + Pager.PageNumber = 1; + Pager.SearchColumn = columnName; + await GetCatalogPaged(); } private async Task SetSortCol(string orderBy) { Items = new List(); - Paging.OrderBy = orderBy; - await FetchSalesItems(); + Pager.OrderBy = orderBy; + await GetCatalogPaged(); } private async Task SetSelectedPage(int page) { Items = new List(); - Paging.PageNumber = page; - await FetchSalesItems(); + Pager.PageNumber = page; + await GetCatalogPaged(); } private async Task SetGroupCol(string groupFilter) { Items = new List(); - Paging.PageNumber = 1; - Paging.SelectGroup = groupFilter; - await FetchSalesItems(); + Pager.PageNumber = 1; + Pager.SelectGroup = groupFilter; + await GetCatalogPaged(); } - - private async Task FetchSalesItems() + + private async Task GetCatalogPaged() { + if (string.IsNullOrWhiteSpace(CountryCode)) + return; + if (Working) + return; Working = true; - var pagingResponse = await Catalog.GetSalesItemsPaged(CountryCode, Paging); + var page = await Catalog.GetSalesItemsPaged(CountryCode, Pager); + Items = page.Items!; + MetaInfo = page.MetaData!; Working = false; - Items = pagingResponse.Items!; - MetaInfo = pagingResponse.MetaData!; } public void Dispose() => Interceptor.DisposeEvent(); diff --git a/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor b/Wonky.Client/Pages/CatalogCountryPrintPage.razor similarity index 90% rename from Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor rename to Wonky.Client/Pages/CatalogCountryPrintPage.razor index cd6f4e93..6c8cb462 100644 --- a/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor +++ b/Wonky.Client/Pages/CatalogCountryPrintPage.razor @@ -17,8 +17,8 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Office,Warehouse")] -@page "/print/catalog/{CountryCode}" +@attribute [Authorize(Roles = "Admin,Advisor,Office,Supervisor,Warehouse")] +@page "/catalog/{CountryCode}/print" Udskriv Katalog for @CountryName diff --git a/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor.cs b/Wonky.Client/Pages/CatalogCountryPrintPage.razor.cs similarity index 91% rename from Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor.cs rename to Wonky.Client/Pages/CatalogCountryPrintPage.razor.cs index 43b1cf2e..8261553e 100644 --- a/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor.cs +++ b/Wonky.Client/Pages/CatalogCountryPrintPage.razor.cs @@ -30,14 +30,13 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class OfficeCountryPrintCatalogPage : IDisposable +public partial class CatalogCountryPrintPage : IDisposable { [Inject] public ILocalStorageService Storage { get; set; } [Inject] public ICountryCatalogRepository Catalog { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Parameter] public string CountryCode { get; set; } = ""; private List Items { get; set; } = new(); - private UserInfoView UserInfo { get; set; } = new(); private bool Working { get; set; } = true; private string CountryName { get; set; } = ""; @@ -45,8 +44,6 @@ public partial class OfficeCountryPrintCatalogPage : IDisposable { Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); - UserInfo = await Storage.GetItemAsync("_xu"); - Items = await Catalog.GetPriceList(CountryCode); CountryName = Utils.CountryName(CountryCode); Working = false; diff --git a/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor b/Wonky.Client/Pages/OfficeAdvisorCustomerListPage.razor similarity index 98% rename from Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor rename to Wonky.Client/Pages/OfficeAdvisorCustomerListPage.razor index a462dd1f..3fa5f28e 100644 --- a/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor +++ b/Wonky.Client/Pages/OfficeAdvisorCustomerListPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin, Office")] +@attribute [Authorize(Roles = "Admin,Office")] @page "/office/users/advisors/{CountryCode}/{UserId}/customers" Kundeliste for @SalesRep.FirstName @SalesRep.LastName diff --git a/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor.cs b/Wonky.Client/Pages/OfficeAdvisorCustomerListPage.razor.cs similarity index 98% rename from Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor.cs rename to Wonky.Client/Pages/OfficeAdvisorCustomerListPage.razor.cs index 50959148..76973e75 100644 --- a/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeAdvisorCustomerListPage.razor.cs @@ -23,7 +23,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class OfficeCountrySalesRepCustomerListPage : IDisposable +public partial class OfficeAdvisorCustomerListPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "dk"; diff --git a/Wonky.Client/Pages/AdminSalesRepViewPage.razor b/Wonky.Client/Pages/OfficeAdvisorViewPage.razor similarity index 100% rename from Wonky.Client/Pages/AdminSalesRepViewPage.razor rename to Wonky.Client/Pages/OfficeAdvisorViewPage.razor diff --git a/Wonky.Client/Pages/AdminSalesRepViewPage.razor.cs b/Wonky.Client/Pages/OfficeAdvisorViewPage.razor.cs similarity index 97% rename from Wonky.Client/Pages/AdminSalesRepViewPage.razor.cs rename to Wonky.Client/Pages/OfficeAdvisorViewPage.razor.cs index 98e8e361..8017af13 100644 --- a/Wonky.Client/Pages/AdminSalesRepViewPage.razor.cs +++ b/Wonky.Client/Pages/OfficeAdvisorViewPage.razor.cs @@ -26,13 +26,13 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdminSalesRepViewPage : IDisposable +public partial class OfficeAdvisorViewPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = ""; [Inject] public HttpInterceptorService _interceptor { get; set; } [Inject] public ISystemUserRepository SystemUserRepo { get; set; } - [Inject] public ILogger _logger { get; set; } + [Inject] public ILogger _logger { get; set; } [Inject] public NavigationManager _navigator { get; set; } [Inject] public IToastService _toast { get; set; } private WebUserInfoView UserInfo { get; set; } = new(); diff --git a/Wonky.Client/Pages/OfficeCountryLandingPage.razor b/Wonky.Client/Pages/OfficeCountryLandingPage.razor index 79317838..d982ef94 100644 --- a/Wonky.Client/Pages/OfficeCountryLandingPage.razor +++ b/Wonky.Client/Pages/OfficeCountryLandingPage.razor @@ -33,7 +33,7 @@ Tlf.Ordre - + Priser
@@ -54,7 +54,7 @@ Tlf.Ordre - + Priser
@@ -75,7 +75,7 @@ Tlf.Ordre - + Priser
diff --git a/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor b/Wonky.Client/Pages/OfficeCustomerCountryCreateOrderPage.razor similarity index 99% rename from Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor rename to Wonky.Client/Pages/OfficeCustomerCountryCreateOrderPage.razor index e55e05f9..5e5f1a3b 100644 --- a/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor +++ b/Wonky.Client/Pages/OfficeCustomerCountryCreateOrderPage.razor @@ -225,4 +225,4 @@
- \ No newline at end of file + \ No newline at end of file diff --git a/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor.cs b/Wonky.Client/Pages/OfficeCustomerCountryCreateOrderPage.razor.cs similarity index 69% rename from Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor.cs rename to Wonky.Client/Pages/OfficeCustomerCountryCreateOrderPage.razor.cs index 2b506377..276bef95 100644 --- a/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCustomerCountryCreateOrderPage.razor.cs @@ -26,9 +26,9 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class OfficeCountryCreateOrderPage : IDisposable +public partial class OfficeCustomerCountryCreateOrderPage : IDisposable { - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ICountryCustomerRepository CustomerRepo { get; set; } [Inject] public ICountryCustomerHistoryRepository InventoryRepo { get; set; } @@ -59,7 +59,7 @@ public partial class OfficeCountryCreateOrderPage : IDisposable private bool ReportClosed { get; set; } private bool PoFormInvalid { get; set; } = true; private bool Working { get; set; } - private PriceListModal PriceList { get; set; } = new(); + private PriceCatalogModal PriceCatalog { get; set; } = new(); protected override async Task OnInitializedAsync() @@ -75,58 +75,58 @@ public partial class OfficeCountryCreateOrderPage : IDisposable // fetch customer Customer = await CustomerRepo.GetByCustomerId(CountryCode, CompanyId); Logger.LogDebug("Customer => {}", JsonSerializer.Serialize(Customer)); - - var today = $"{DateTime.Now:yyyy-MM-dd}"; - - // initiate a sync to ensure up-to-date product history - if (Customer.HistorySync != today) - Customer.HistorySync = await InventoryRepo.InvoiceErpToCrmRpc(CountryCode, CompanyId, Customer.HistorySync); - - // fetch customer inventory - CustomerInventory = await InventoryRepo.FetchInventory(CountryCode, CompanyId); - Logger.LogDebug("Inventory => {}", JsonSerializer.Serialize(CustomerInventory)); - - // get sales rep info - SalesRep = await UserRepo.GetAdvisorInfo(Customer.SalesRepId); - Logger.LogDebug("SalesRep => {}", JsonSerializer.Serialize(SalesRep)); - - // set activity salesRep and countryCode - Activity.SalesRep = SalesRep.Advisor; - Activity.CountryCode = SalesRep.CountryCode; - - // add customer info into activity properties - Activity.Account = Customer.Account; - Activity.VatNumber = Customer.VatNumber; - Activity.Email = Customer.Email; - Activity.Phone = Customer.Phone; - Activity.Mobile = Customer.Mobile; - Activity.Name = Customer.Name; - Activity.Address1 = Customer.Address1; - Activity.Address2 = Customer.Address2; - Activity.ZipCode = Customer.ZipCode; - Activity.City = Customer.City; - Activity.DlvName = Customer.Name; - Activity.DlvAddress1 = Customer.Address1; - Activity.DlvAddress2 = Customer.Address2; - Activity.DlvZipCode = Customer.ZipCode; - Activity.DlvCity = Customer.City; - Activity.BcId = Customer.BcId; - Activity.CompanyId = Customer.CompanyId; - Activity.SalesRepId = Customer.SalesRepId; - - // setting up activity properties - Activity.ActivityStatusEnum = "noSale"; - Activity.VisitTypeEnum = "recall"; - Activity.ActivityTypeEnum = "phone"; - Activity.ActivityStatusEnum = "order"; - - // Initialize date variable - SelectedDate = DateTime.Now; + // + // var today = $"{DateTime.Now:yyyy-MM-dd}"; + // + // // initiate a sync to ensure up-to-date product history + // if (Customer.HistorySync != today) + // Customer.HistorySync = await InventoryRepo.InvoiceErpToCrmRpc(CountryCode, CompanyId, Customer.HistorySync); + // + // // fetch customer inventory + // CustomerInventory = await InventoryRepo.FetchInventory(CountryCode, CompanyId); + // Logger.LogDebug("Inventory => {}", JsonSerializer.Serialize(CustomerInventory)); + // + // // get sales rep info + // SalesRep = await UserRepo.GetAdvisorInfo(Customer.SalesRepId); + // Logger.LogDebug("SalesRep => {}", JsonSerializer.Serialize(SalesRep)); + // + // // set activity salesRep and countryCode + // Activity.SalesRep = SalesRep.Advisor; + // Activity.CountryCode = SalesRep.CountryCode; + // + // // add customer info into activity properties + // Activity.Account = Customer.Account; + // Activity.VatNumber = Customer.VatNumber; + // Activity.Email = Customer.Email; + // Activity.Phone = Customer.Phone; + // Activity.Mobile = Customer.Mobile; + // Activity.Name = Customer.Name; + // Activity.Address1 = Customer.Address1; + // Activity.Address2 = Customer.Address2; + // Activity.ZipCode = Customer.ZipCode; + // Activity.City = Customer.City; + // Activity.DlvName = Customer.Name; + // Activity.DlvAddress1 = Customer.Address1; + // Activity.DlvAddress2 = Customer.Address2; + // Activity.DlvZipCode = Customer.ZipCode; + // Activity.DlvCity = Customer.City; + // Activity.BcId = Customer.BcId; + // Activity.CompanyId = Customer.CompanyId; + // Activity.SalesRepId = Customer.SalesRepId; + // + // // setting up activity properties + // Activity.ActivityStatusEnum = "noSale"; + // Activity.VisitTypeEnum = "recall"; + // Activity.ActivityTypeEnum = "phone"; + // Activity.ActivityStatusEnum = "order"; + // + // // Initialize date variable + // SelectedDate = DateTime.Now; } private void CallPriceListModal() { - PriceList.Show(); + PriceCatalog.Show(); } private async Task PriceListCallback(SelectedSku sku) diff --git a/Wonky.Client/Pages/OfficeCountryCustomerListPage.razor b/Wonky.Client/Pages/OfficeCustomerCountryListPage.razor similarity index 100% rename from Wonky.Client/Pages/OfficeCountryCustomerListPage.razor rename to Wonky.Client/Pages/OfficeCustomerCountryListPage.razor diff --git a/Wonky.Client/Pages/OfficeCountryCustomerListPage.razor.cs b/Wonky.Client/Pages/OfficeCustomerCountryListPage.razor.cs similarity index 98% rename from Wonky.Client/Pages/OfficeCountryCustomerListPage.razor.cs rename to Wonky.Client/Pages/OfficeCustomerCountryListPage.razor.cs index e9369a24..8d2d5c0f 100644 --- a/Wonky.Client/Pages/OfficeCountryCustomerListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCustomerCountryListPage.razor.cs @@ -28,7 +28,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages { - public partial class OfficeCountryCustomerListPage : IDisposable + public partial class OfficeCustomerCountryListPage : IDisposable { [Parameter] public string CountryCode { get; set; } = ""; [Inject] public ILocalStorageService Storage { get; set; } diff --git a/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor index d9021b69..e12938b3 100644 --- a/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor +++ b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor @@ -24,29 +24,29 @@ - @if (_reportItem.Express) - { -
- +
+
+
+
- @if (_reportItem.ProcessStatusEnum == "None") + @if (_reportItem.Express) { - - -
-
-
- -
-
- -
+
+ +
+ @if (_reportItem.ProcessStatusEnum == "None") + { + + +
+
-
- - + + + } } - } +
+

@_reportItem.Company.Name

@if (_reportItem.Express) @@ -158,4 +158,4 @@ @if (Working) { -} +} \ No newline at end of file diff --git a/Wonky.Client/Pages/OfficeSalesRepListPage.razor b/Wonky.Client/Pages/OfficeUserAdvisorCountryListPage.razor similarity index 96% rename from Wonky.Client/Pages/OfficeSalesRepListPage.razor rename to Wonky.Client/Pages/OfficeUserAdvisorCountryListPage.razor index 636d1c30..8f25c563 100644 --- a/Wonky.Client/Pages/OfficeSalesRepListPage.razor +++ b/Wonky.Client/Pages/OfficeUserAdvisorCountryListPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin, Office")] +@attribute [Authorize(Roles = "Admin,Office")] @page "/office/users/advisors/{CountryCode}" Sælger Oversigt @CountryName diff --git a/Wonky.Client/Pages/OfficeSalesRepListPage.razor.cs b/Wonky.Client/Pages/OfficeUserAdvisorCountryListPage.razor.cs similarity index 94% rename from Wonky.Client/Pages/OfficeSalesRepListPage.razor.cs rename to Wonky.Client/Pages/OfficeUserAdvisorCountryListPage.razor.cs index 54dd3290..cc2fcab0 100644 --- a/Wonky.Client/Pages/OfficeSalesRepListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeUserAdvisorCountryListPage.razor.cs @@ -6,7 +6,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class OfficeSalesRepListPage :IDisposable +public partial class OfficeUserAdvisorCountryListPage :IDisposable { [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ISystemUserRepository SystemUserRepo { get; set; } diff --git a/Wonky.Client/Pages/OfficeReportListPage.razor b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportListPage.razor similarity index 96% rename from Wonky.Client/Pages/OfficeReportListPage.razor rename to Wonky.Client/Pages/OfficeUserAdvisorCountryReportListPage.razor index 8e5c79bb..92939bfd 100644 --- a/Wonky.Client/Pages/OfficeReportListPage.razor +++ b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportListPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin, Office")] +@attribute [Authorize(Roles = "Admin,Office")] @page "/office/users/advisors/{CountryCode}/{UserId}/reports" Rapport Arkiv @UserInfo.FirstName @UserInfo.LastName diff --git a/Wonky.Client/Pages/OfficeReportListPage.razor.cs b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportListPage.razor.cs similarity index 97% rename from Wonky.Client/Pages/OfficeReportListPage.razor.cs rename to Wonky.Client/Pages/OfficeUserAdvisorCountryReportListPage.razor.cs index ab5e403a..258cfa8d 100644 --- a/Wonky.Client/Pages/OfficeReportListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportListPage.razor.cs @@ -23,7 +23,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class OfficeReportListPage : IDisposable +public partial class OfficeUserAdvisorCountryReportListPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = ""; diff --git a/Wonky.Client/Pages/OfficeReportViewPage.razor b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportViewPage.razor similarity index 98% rename from Wonky.Client/Pages/OfficeReportViewPage.razor rename to Wonky.Client/Pages/OfficeUserAdvisorCountryReportViewPage.razor index 5a82479c..94269610 100644 --- a/Wonky.Client/Pages/OfficeReportViewPage.razor +++ b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportViewPage.razor @@ -18,7 +18,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Models -@attribute [Authorize(Roles = "Admin, Office")] +@attribute [Authorize(Roles = "Admin,Office")] @page "/office/users/advisors/{CountryCode}/{UserId}/reports/{ReportDate}"
diff --git a/Wonky.Client/Pages/OfficeReportViewPage.razor.cs b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportViewPage.razor.cs similarity index 92% rename from Wonky.Client/Pages/OfficeReportViewPage.razor.cs rename to Wonky.Client/Pages/OfficeUserAdvisorCountryReportViewPage.razor.cs index 99aa3800..2b3db1db 100644 --- a/Wonky.Client/Pages/OfficeReportViewPage.razor.cs +++ b/Wonky.Client/Pages/OfficeUserAdvisorCountryReportViewPage.razor.cs @@ -23,7 +23,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class OfficeReportViewPage : IDisposable +public partial class OfficeUserAdvisorCountryReportViewPage : IDisposable { /// /// Country code from url parameter @@ -65,7 +65,7 @@ public partial class OfficeReportViewPage : IDisposable /// Logger service /// [Inject] - public ILogger Logger { get; set; } + public ILogger Logger { get; set; } /// /// Storage service @@ -103,10 +103,10 @@ public partial class OfficeReportViewPage : IDisposable switch (target) { case PTarget.OrderPage: - Navigator.NavigateTo($"/print/orders/{CountryCode}/{UserId}/{ReportDate}?returnUrl={ReturnUrl}"); + Navigator.NavigateTo($"/report/print/orders/{CountryCode}/{UserId}/{ReportDate}?returnUrl={ReturnUrl}"); break; case PTarget.FrontPage: - Navigator.NavigateTo($"/print/report/{CountryCode}/{UserId}/{ReportDate}?returnUrl={ReturnUrl}"); + Navigator.NavigateTo($"/report/print/summary/{CountryCode}/{UserId}/{ReportDate}?returnUrl={ReturnUrl}"); break; case PTarget.None: break; diff --git a/Wonky.Client/Pages/PreferencesPage.razor b/Wonky.Client/Pages/PreferencesPage.razor index 39835b0d..928f22d8 100644 --- a/Wonky.Client/Pages/PreferencesPage.razor +++ b/Wonky.Client/Pages/PreferencesPage.razor @@ -22,35 +22,35 @@
- +
- +
- +
- +
- +
diff --git a/Wonky.Client/Pages/PrintCatalogPage.razor b/Wonky.Client/Pages/PrintCatalogPage.razor deleted file mode 100644 index dc76af95..00000000 --- a/Wonky.Client/Pages/PrintCatalogPage.razor +++ /dev/null @@ -1,29 +0,0 @@ -@* -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// -*@ - -@using Wonky.Client.Components -@using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Office,Advisor,Warehouse")] -@page "/print/catalog" - - - -@if (Working) -{ - -} - diff --git a/Wonky.Client/Pages/PrintCatalogPage.razor.cs b/Wonky.Client/Pages/PrintCatalogPage.razor.cs deleted file mode 100644 index 62002827..00000000 --- a/Wonky.Client/Pages/PrintCatalogPage.razor.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// - -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Blazored.LocalStorage; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpRepository; -using Microsoft.AspNetCore.Components; -using Wonky.Client.Components; -using Wonky.Client.HttpInterfaces; -using Wonky.Client.Services; -using Wonky.Entity.DTO; -using Wonky.Entity.Requests; -using Wonky.Entity.Views; - -namespace Wonky.Client.Pages; - -public partial class PrintCatalogPage : IDisposable -{ - [Inject] public ILocalStorageService Storage { get; set; } - [Inject] public IAdvisorCatalogRepository ItemRepo { get; set; } - [Inject] public HttpInterceptorService Interceptor { get; set; } - - private List Items { get; set; } = new(); - private UserInfoView UserInfo { get; set; } = new(); - - private bool Working { get; set; } = true; - - protected override async Task OnInitializedAsync() - { - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - - UserInfo = await Storage.GetItemAsync("_xu"); - - Items = await ItemRepo.GetPriceList(); - Working = false; - } - - public void Dispose() => Interceptor.DisposeEvent(); - -} \ No newline at end of file diff --git a/Wonky.Client/Pages/PrintOrderPage.razor b/Wonky.Client/Pages/ReportPrintOrderPage.razor similarity index 96% rename from Wonky.Client/Pages/PrintOrderPage.razor rename to Wonky.Client/Pages/ReportPrintOrderPage.razor index fd01f431..d195ce55 100644 --- a/Wonky.Client/Pages/PrintOrderPage.razor +++ b/Wonky.Client/Pages/ReportPrintOrderPage.razor @@ -18,7 +18,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Admin,Office,Advisor")] -@page "/print/orders/{CountryCode}/{UserId}/{ReportDate}" +@page "/report/print/orders/{CountryCode}/{UserId}/{ReportDate}"
diff --git a/Wonky.Client/Pages/PrintOrderPage.razor.cs b/Wonky.Client/Pages/ReportPrintOrderPage.razor.cs similarity index 95% rename from Wonky.Client/Pages/PrintOrderPage.razor.cs rename to Wonky.Client/Pages/ReportPrintOrderPage.razor.cs index f42ceb12..b8a08c63 100644 --- a/Wonky.Client/Pages/PrintOrderPage.razor.cs +++ b/Wonky.Client/Pages/ReportPrintOrderPage.razor.cs @@ -21,7 +21,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class PrintOrderPage +public partial class ReportPrintOrderPage { [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 Logger { get; set; } + [Inject] public ILogger Logger { get; set; } private ReportView Report { get; set; } = new(); private List Items { get; set; } = new(); private IJSObjectReference JsModule { get; set; } diff --git a/Wonky.Client/Pages/PrintFrontPage.razor b/Wonky.Client/Pages/ReportPrintSummaryPage.razor similarity index 96% rename from Wonky.Client/Pages/PrintFrontPage.razor rename to Wonky.Client/Pages/ReportPrintSummaryPage.razor index 97249b31..26e4d413 100644 --- a/Wonky.Client/Pages/PrintFrontPage.razor +++ b/Wonky.Client/Pages/ReportPrintSummaryPage.razor @@ -18,7 +18,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Admin,Office,Advisor")] -@page "/print/report/{CountryCode}/{UserId}/{ReportDate}" +@page "/report/print/summary/{CountryCode}/{UserId}/{ReportDate}"
diff --git a/Wonky.Client/Pages/PrintFrontPage.razor.cs b/Wonky.Client/Pages/ReportPrintSummaryPage.razor.cs similarity index 95% rename from Wonky.Client/Pages/PrintFrontPage.razor.cs rename to Wonky.Client/Pages/ReportPrintSummaryPage.razor.cs index 11ccbd1a..039f12c8 100644 --- a/Wonky.Client/Pages/PrintFrontPage.razor.cs +++ b/Wonky.Client/Pages/ReportPrintSummaryPage.razor.cs @@ -22,7 +22,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class PrintFrontPage +public partial class ReportPrintSummaryPage { [Parameter] public string CountryCode { get; set; } = ""; [Parameter] public string UserId { get; set; } = ""; @@ -30,7 +30,7 @@ public partial class PrintFrontPage [Inject] public ILocalStorageService Storage { get; set; } [Inject] public NavigationManager Navigator { get; set; } [Inject] private IJSRuntime JSRuntime { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } private ReportView Report { get; set; } = new(); private IJSObjectReference JsModule { get; set; } private string ReturnUrl { get; set; } = ""; diff --git a/Wonky.Client/Pages/WarehouseOrderListPage.razor b/Wonky.Client/Pages/WarehouseOrderListPage.razor index cba15e46..515e3c67 100644 --- a/Wonky.Client/Pages/WarehouseOrderListPage.razor +++ b/Wonky.Client/Pages/WarehouseOrderListPage.razor @@ -33,4 +33,4 @@
\ No newline at end of file + OnGetStatus="GetStatusCallback" OnSetShipped="@SetShippedCallback" OnQPak="QPakCallback" /> \ No newline at end of file diff --git a/Wonky.Client/Program.cs b/Wonky.Client/Program.cs index a51e9c15..aae39708 100644 --- a/Wonky.Client/Program.cs +++ b/Wonky.Client/Program.cs @@ -60,8 +60,7 @@ builder.Services.AddScoped( builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); -builder.Services.AddScoped(); -builder.Services.AddScoped(); +builder.Services.AddScoped(); // administrative repositories builder.Services.AddScoped(); builder.Services.AddScoped(); diff --git a/Wonky.Client/Services/UserProfileService.cs b/Wonky.Client/Services/UserProfileService.cs index 58a9ee32..74618eb5 100644 --- a/Wonky.Client/Services/UserProfileService.cs +++ b/Wonky.Client/Services/UserProfileService.cs @@ -18,11 +18,11 @@ namespace Wonky.Client.Services; public record UserPref { - public string? CompanyFilterPhrase { get; set; } = ""; - public string? CompanySearch { get; set; } = "name"; - public string? CompanySort { get; set; } = "name"; - public string? ItemSearch { get; set; } = "name"; - public string? ItemSort { get; set; } = "name"; + public string CompanyFilterPhrase { get; set; } = ""; + public string CompanySearch { get; set; } = "name"; + public string CompanySort { get; set; } = "name"; + public string ItemSearch { get; set; } = "name"; + public string ItemSort { get; set; } = "name"; public string PageSize { get; set; } = "10"; public string WorkDate { get; set; } = ""; public int KmMorning { get; set; } @@ -32,6 +32,7 @@ public record UserPref public class UserProfileService { private readonly ILocalStorageService _localStorageService; + private const string KeyName = "preferences"; public event Action? OnChange; public UserProfileService(ILocalStorageService localStorageService) { @@ -46,7 +47,7 @@ public class UserProfileService { DateConfirmed = confirmed }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -58,7 +59,7 @@ public class UserProfileService { KmMorning = kmMorning }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -70,7 +71,7 @@ public class UserProfileService { CompanyFilterPhrase = filterPhrase }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -82,7 +83,7 @@ public class UserProfileService { WorkDate = $"{workDate:yyyy-MM-dd}" }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -91,7 +92,7 @@ public class UserProfileService var preferences = await GetPreferences(); var newPreferences = preferences with { CompanySearch = companySearch }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -100,7 +101,7 @@ public class UserProfileService var preferences = await GetPreferences(); var newPreferences = preferences with { CompanySort = companySort }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -109,7 +110,7 @@ public class UserProfileService var preferences = await GetPreferences(); var newPreferences = preferences with { ItemSearch = itemSearch }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -118,7 +119,7 @@ public class UserProfileService var preferences = await GetPreferences(); var newPreferences = preferences with { ItemSort = itemSort }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } @@ -127,13 +128,12 @@ public class UserProfileService var preferences = await GetPreferences(); var newPreferences = preferences with { PageSize = pageSize }; - await _localStorageService.SetItemAsync("preferences", newPreferences); + await _localStorageService.SetItemAsync(KeyName, newPreferences); OnChange?.Invoke(newPreferences); } public async Task GetPreferences() { - return await _localStorageService.GetItemAsync("preferences").ConfigureAwait(true) - ?? new UserPref(); + return await _localStorageService.GetItemAsync(KeyName) ?? new UserPref(); } } \ No newline at end of file diff --git a/Wonky.Client/Shared/NavMenu.razor b/Wonky.Client/Shared/NavMenu.razor index 995242ef..201a97bf 100644 --- a/Wonky.Client/Shared/NavMenu.razor +++ b/Wonky.Client/Shared/NavMenu.razor @@ -17,6 +17,9 @@ @inject IWebAssemblyHostEnvironment HostEnvironment @using Wonky.Client.Components; +@using Wonky.Client.Services +@using Wonky.Entity.Views +@using Blazored.LocalStorage @@ -101,13 +104,15 @@
@code { + private bool collapseNavMenu = true; private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; - + private void ToggleNavMenu() { collapseNavMenu = !collapseNavMenu; } - + + } \ No newline at end of file diff --git a/Wonky.Client/Shared/PriceListModal.razor b/Wonky.Client/Shared/PriceCatalogModal.razor similarity index 97% rename from Wonky.Client/Shared/PriceListModal.razor rename to Wonky.Client/Shared/PriceCatalogModal.razor index c82d8e97..9714507b 100644 --- a/Wonky.Client/Shared/PriceListModal.razor +++ b/Wonky.Client/Shared/PriceCatalogModal.razor @@ -41,7 +41,7 @@
- +
diff --git a/Wonky.Client/Shared/PriceListModal.razor.cs b/Wonky.Client/Shared/PriceCatalogModal.razor.cs similarity index 76% rename from Wonky.Client/Shared/PriceListModal.razor.cs rename to Wonky.Client/Shared/PriceCatalogModal.razor.cs index 9513817d..fba3c4c6 100644 --- a/Wonky.Client/Shared/PriceListModal.razor.cs +++ b/Wonky.Client/Shared/PriceCatalogModal.razor.cs @@ -24,31 +24,41 @@ using Wonky.Entity.Views; namespace Wonky.Client.Shared; -public partial class PriceListModal : IDisposable +public partial class PriceCatalogModal : IDisposable { - [Parameter] public string CountryCode { get; set; } = "dk"; + [Parameter] public string CountryCode { get; set; } = ""; [Parameter] public EventCallback OnSelected { get; set; } - [Inject] public IAdvisorCatalogRepository Catalog { get; set; } + [Inject] public ICountryCatalogRepository Catalog { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public UserProfileService ProfileService { get; set; } private string _modalDisplay = ""; private bool _showBackdrop; private List Items { get; set; } = new(); - private MetaData? ResponseMeta { get; set; } = new(); - private CatalogPaging _paging = new(); + private MetaData? MetaInfo { get; set; } = new(); + private CatalogPager _pager = new(); private UserPref _userPref = new(); - protected override async Task OnInitializedAsync() + protected override async Task OnParametersSetAsync() { - _userPref = await ProfileService.GetPreferences(); - _paging.OrderBy = _userPref.ItemSort; - _paging.SearchColumn = _userPref.ItemSearch; - _paging.PageSize = Convert.ToInt32(_userPref.PageSize); Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); await GetSalesItems(); } + protected override async Task OnInitializedAsync() + { + _userPref = await ProfileService.GetPreferences(); + _pager.OrderBy = _userPref.ItemSort; + _pager.SearchColumn = _userPref.ItemSearch; + _pager.PageSize = Convert.ToInt32(_userPref.PageSize); + } + + private async Task GetSalesItems() + { + var pagingResponse = await Catalog.GetSalesItemsPaged(CountryCode, _pager); + Items = pagingResponse.Items!; + MetaInfo = pagingResponse.MetaData; + } private void SelectItem(string itemId, string quantity, string rate) { @@ -59,44 +69,37 @@ public partial class PriceListModal : IDisposable private async Task SelectedPage(int page) { Items = new List(); - _paging.PageNumber = page; + _pager.PageNumber = page; await GetSalesItems(); } private async Task SetSearchPhrase(string searchTerm) { Items = new List(); - _paging.PageNumber = 1; - _paging.SearchTerm = searchTerm; + _pager.PageNumber = 1; + _pager.SearchTerm = searchTerm; await GetSalesItems(); } - private async Task GetSalesItems() - { - var pagingResponse = await Catalog.GetSalesItemsPaged(_paging); - Items = pagingResponse.Items!; - ResponseMeta = pagingResponse.MetaData; - } - private async Task SetPageSize(string pageSize) { Items = new List(); - _paging.PageSize = Convert.ToInt32(pageSize); - _paging.PageNumber = 1; + _pager.PageSize = Convert.ToInt32(pageSize); + _pager.PageNumber = 1; await GetSalesItems(); } private async Task SetSearchCol(string columnName) { Items = new List(); - _paging.PageNumber = 1; - _paging.SearchColumn = columnName; + _pager.PageNumber = 1; + _pager.SearchColumn = columnName; await GetSalesItems(); } private async Task SetSortCol(string orderBy) { Items = new List(); - _paging.OrderBy = orderBy; + _pager.OrderBy = orderBy; await GetSalesItems(); } diff --git a/Wonky.Client/Wonky.Client.csproj b/Wonky.Client/Wonky.Client.csproj index 8cc7d5f2..ae7de65b 100644 --- a/Wonky.Client/Wonky.Client.csproj +++ b/Wonky.Client/Wonky.Client.csproj @@ -31,6 +31,7 @@ PreserveNewest + @@ -3783,6 +3784,7 @@ + diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json index ab61f325..857e3c19 100644 --- a/Wonky.Client/wwwroot/appsettings.json +++ b/Wonky.Client/wwwroot/appsettings.json @@ -1,14 +1,14 @@ { "appInfo": { "name": "Wonky Client", - "version": "0.97.x", + "version": "0.97.1", "rc": true, "sandBox": false, "image": "grumpy-coder.png" }, "apiConfig": { - "baseUrl": "https://dev.innotec.dk", - "catalog": "api/v2/catalog", + "baseUrl": "https://zeta.innotec.dk", + "catalog": "api/v2/catalog/country", "crmCustomers": "api/v2/crm/companies", "crmInventoryExt": "history/inventory", "crmProductExt": "history/products", @@ -30,7 +30,7 @@ "servicesVatNo": "api/v2/services/brReg", "servicesAuth": "token", "syncRpc": "api/v2/rpc", - "syncRpcInvoiceExt": "invoices/rpc", + "syncRpcInvoiceExt": "invoices", "userInfo": "api/auth/userinfo", "warehouse": "api/v2/warehouse/packages" }, diff --git a/Wonky.Client/wwwroot/css/app.css b/Wonky.Client/wwwroot/css/app.css index 11012adf..87c8016c 100644 --- a/Wonky.Client/wwwroot/css/app.css +++ b/Wonky.Client/wwwroot/css/app.css @@ -16,7 +16,6 @@ body { .workDate { font-variant: small-caps; } - .btn.btn-edit { color: #030303; background-color: #a2a2ec; diff --git a/Wonky.Entity/Requests/CatalogPaging.cs b/Wonky.Entity/Requests/CatalogPager.cs similarity index 98% rename from Wonky.Entity/Requests/CatalogPaging.cs rename to Wonky.Entity/Requests/CatalogPager.cs index fd7ecb96..b2653dd8 100644 --- a/Wonky.Entity/Requests/CatalogPaging.cs +++ b/Wonky.Entity/Requests/CatalogPager.cs @@ -15,7 +15,7 @@ namespace Wonky.Entity.Requests; -public class CatalogPaging +public class CatalogPager { /// /// internal default page size