diff --git a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor b/Wonky.Client/Components/AdvisorCompanyTableComponent.razor index 8bbf8486..92cc3002 100644 --- a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor +++ b/Wonky.Client/Components/AdvisorCompanyTableComponent.razor @@ -24,6 +24,7 @@ BS + Navn Konto Tlf @@ -38,6 +39,9 @@ + + + @company.Name @@ -63,4 +67,5 @@ else { -} \ No newline at end of file +} + \ No newline at end of file diff --git a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor.cs b/Wonky.Client/Components/AdvisorCompanyTableComponent.razor.cs index c2f55e8d..eeee6d4b 100644 --- a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor.cs +++ b/Wonky.Client/Components/AdvisorCompanyTableComponent.razor.cs @@ -16,12 +16,15 @@ using Blazored.LocalStorage; using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; using Wonky.Client.Helpers; +using Wonky.Client.Pages; using Wonky.Client.Services; using Wonky.Client.Shared; using Wonky.Entity.DTO; using Wonky.Entity.Views; + namespace Wonky.Client.Components { public partial class AdvisorCompanyTableComponent @@ -30,31 +33,29 @@ namespace Wonky.Client.Components [Parameter] public EventCallback OnDelete { get; set; } [Parameter] public EventCallback OnSelect { get; set; } [Inject] public NavigationManager _navigator { get; set; } + [Inject] public IJSRuntime Js { get; set; } + + private Lazy BsTooltip = new(); - private Confirmation _confirmation = new (); - private string _companyId = ""; - private string _actionUrl = ""; + private Information _information { get; set; } = new(); + private string _info { get; set; } = ""; + private string _companyId { get; set; } = ""; + // private string _actionUrl { get; set; } = ""; protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); } - + private void ViewCustomer(string companyId) { _navigator.NavigateTo($"/companies/{companyId}"); } - private void CallConfirmationModal(string companyId) + private void CallInformationModal(string info) { - _companyId = companyId; - _confirmation.Show(); - } - - private async Task DeleteCompany() - { - _confirmation.Hide(); - await OnDelete.InvokeAsync(_companyId); + _info = info; + _information.Show(); } } } diff --git a/Wonky.Client/Components/OfficeCustomerTableComponent.razor b/Wonky.Client/Components/OfficeCustomerTableComponent.razor index 992e5bea..242961d4 100644 --- a/Wonky.Client/Components/OfficeCustomerTableComponent.razor +++ b/Wonky.Client/Components/OfficeCustomerTableComponent.razor @@ -23,47 +23,50 @@
+
+ Sælger +
+
+ Konto +
+
+ Telefon +
Navn
-
- Konto -
-
- Telefon -
Bynavn
-
- -
@foreach (var company in Companies) { - +
+
+ @company.SalesRep +
+
+ @company.Account +
+
+ @company.Phone +
@company.Name
- @company.Account -
-
- @company.Phone -
-
- @company.City -
-
- - + @company.CountryCode.ToUpper()-@company.ZipCode @company.City
+ @*
*@ + @* *@ + @* *@ + @*
*@
} diff --git a/Wonky.Client/Components/OfficeCustomerTableComponent.razor.cs b/Wonky.Client/Components/OfficeCustomerTableComponent.razor.cs index f1cf7b97..f153d30e 100644 --- a/Wonky.Client/Components/OfficeCustomerTableComponent.razor.cs +++ b/Wonky.Client/Components/OfficeCustomerTableComponent.razor.cs @@ -27,13 +27,13 @@ namespace Wonky.Client.Components public partial class OfficeCustomerTableComponent { [Parameter] public List Companies { get; set; } = new(); - [Parameter] public EventCallback OnDelete { get; set; } - [Parameter] public EventCallback OnSelect { get; set; } - - private Confirmation _confirmation = new (); - private string _companyId = ""; - private string _actionUrl = ""; - + // [Parameter] public EventCallback OnDelete { get; set; } + // [Parameter] public EventCallback OnSelect { get; set; } + // + // private Confirmation _confirmation = new (); + // private string _companyId = ""; + // private string _actionUrl = ""; + // protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); diff --git a/Wonky.Client/HttpInterfaces/IOfficeCustomerHttpRepository.cs b/Wonky.Client/HttpInterfaces/IOfficeCustomerHttpRepository.cs index a64468ce..746c2308 100644 --- a/Wonky.Client/HttpInterfaces/IOfficeCustomerHttpRepository.cs +++ b/Wonky.Client/HttpInterfaces/IOfficeCustomerHttpRepository.cs @@ -23,5 +23,5 @@ public interface IOfficeCustomerHttpRepository { Task> GetCompaniesPaged(CompanyPagingParams pagingParameters); Task> GetCompaniesPagedSalesRep(string salesRepId, CompanyPagingParams pagingParameters); - Task GetCompanyById(string companyId); + Task GetByCustomerId(string companyId); } \ No newline at end of file diff --git a/Wonky.Client/HttpInterfaces/IOfficeUserHttpRepository.cs b/Wonky.Client/HttpInterfaces/IOfficeUserHttpRepository.cs index 0f2dcd67..d2844d5d 100644 --- a/Wonky.Client/HttpInterfaces/IOfficeUserHttpRepository.cs +++ b/Wonky.Client/HttpInterfaces/IOfficeUserHttpRepository.cs @@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces; public interface IOfficeUserHttpRepository { Task> GetAdvisors(); - Task GetAdvisorInfo(string userId); + Task GetAdvisorInfo(string userId); Task UpdateAdvisor(string userId, UserUpdateDto model); Task> GetAdminUsers(); Task GetAdminUserInfo(string userId); diff --git a/Wonky.Client/HttpRepository/OfficeCustomerHttpRepository.cs b/Wonky.Client/HttpRepository/OfficeCustomerHttpRepository.cs index 8f0dd134..61beb540 100644 --- a/Wonky.Client/HttpRepository/OfficeCustomerHttpRepository.cs +++ b/Wonky.Client/HttpRepository/OfficeCustomerHttpRepository.cs @@ -73,12 +73,12 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository ["searchColumn"] = pagingParameters.SearchColumn, ["orderBy"] = pagingParameters.OrderBy, ["isHidden"] = pagingParameters.IsHidden.ToString(), - ["hasFolded"] = pagingParameters.HasFolded.ToString() + ["hasFolded"] = pagingParameters.HasFolded.ToString(), + ["countryCode"] = pagingParameters.CountryCode }; - var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/salesRep/{salesRepId}", queryString)); - + + var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/salesRep/{salesRepId}/", queryString)); var content = await response.Content.ReadAsStringAsync(); - var pagingResponse = new PagingResponse { Items = JsonSerializer.Deserialize>(content, _options), @@ -103,12 +103,13 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository ["searchColumn"] = pagingParameters.SearchColumn, ["orderBy"] = pagingParameters.OrderBy, ["isHidden"] = pagingParameters.IsHidden.ToString(), - ["hasFolded"] = pagingParameters.HasFolded.ToString() + ["hasFolded"] = pagingParameters.HasFolded.ToString(), + ["countryCode"] = pagingParameters.CountryCode }; + var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}", queryString)); - var content = await response.Content.ReadAsStringAsync(); - + var pagingResponse = new PagingResponse { Items = JsonSerializer.Deserialize>(content, _options), @@ -122,7 +123,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository /// /// /// - public async Task GetCompanyById(string companyId) + public async Task GetByCustomerId(string companyId) { var company = await _client.GetFromJsonAsync($"{_api.OfficeCustomers}/id/{companyId}"); return company ?? new CompanyDto(); diff --git a/Wonky.Client/HttpRepository/OfficeUserHttpRepository.cs b/Wonky.Client/HttpRepository/OfficeUserHttpRepository.cs index 30b35770..697feecd 100644 --- a/Wonky.Client/HttpRepository/OfficeUserHttpRepository.cs +++ b/Wonky.Client/HttpRepository/OfficeUserHttpRepository.cs @@ -37,10 +37,8 @@ public class OfficeUserHttpRepository : IOfficeUserHttpRepository private readonly HttpClient _client; private readonly ApiConfig _api; - public OfficeUserHttpRepository(HttpClient client, - ILogger logger, - NavigationManager navigation, - IOptions configuration) + public OfficeUserHttpRepository(HttpClient client, ILogger logger, + NavigationManager navigation, IOptions configuration) { _client = client; _logger = logger; @@ -53,11 +51,9 @@ public class OfficeUserHttpRepository : IOfficeUserHttpRepository return await _client.GetFromJsonAsync>(_api.OfficeAdvisors); } - public async Task GetAdvisorInfo(string userId) + public async Task GetAdvisorInfo(string userId) { - var user = await _client.GetFromJsonAsync($"{_api.OfficeAdvisors}/{userId}"); - Console.WriteLine(JsonSerializer.Serialize(user)); - return user; + return await _client.GetFromJsonAsync($"{_api.OfficeAdvisors}/{userId}"); } public async Task UpdateAdvisor(string userId, UserUpdateDto model) @@ -67,16 +63,12 @@ public class OfficeUserHttpRepository : IOfficeUserHttpRepository public async Task> GetAdminUsers() { - var users =await _client.GetFromJsonAsync>(_api.OfficeUsers); - Console.WriteLine(JsonSerializer.Serialize(users)); - return users; + return await _client.GetFromJsonAsync>(_api.OfficeUsers); } public async Task GetAdminUserInfo(string userId) { - var user = await _client.GetFromJsonAsync($"{_api.OfficeUsers}/{userId}"); - Console.WriteLine(JsonSerializer.Serialize(user)); - return user; + return await _client.GetFromJsonAsync($"{_api.OfficeUsers}/{userId}"); } public async Task UpdateAdminUser(string userId, UserUpdateDto model) diff --git a/Wonky.Client/Pages/CrmListActivityTodayPage.razor b/Wonky.Client/Pages/CrmActivityTodayPage.razor similarity index 100% rename from Wonky.Client/Pages/CrmListActivityTodayPage.razor rename to Wonky.Client/Pages/CrmActivityTodayPage.razor diff --git a/Wonky.Client/Pages/CrmListActivityTodayPage.razor.cs b/Wonky.Client/Pages/CrmActivityTodayPage.razor.cs similarity index 95% rename from Wonky.Client/Pages/CrmListActivityTodayPage.razor.cs rename to Wonky.Client/Pages/CrmActivityTodayPage.razor.cs index ad5d4ec8..51045e43 100644 --- a/Wonky.Client/Pages/CrmListActivityTodayPage.razor.cs +++ b/Wonky.Client/Pages/CrmActivityTodayPage.razor.cs @@ -25,10 +25,10 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CrmListActivityTodayPage : IDisposable +public partial class CrmActivityTodayPage : IDisposable { [Inject] public UserPreferenceService _preferenceService { 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 ICrmActivityHttpRepository CrmActivityRepo { get; set; } diff --git a/Wonky.Client/Pages/CrmHistoryItemPage.razor b/Wonky.Client/Pages/CrmItemHistoryPage.razor similarity index 100% rename from Wonky.Client/Pages/CrmHistoryItemPage.razor rename to Wonky.Client/Pages/CrmItemHistoryPage.razor diff --git a/Wonky.Client/Pages/CrmHistoryItemPage.razor.cs b/Wonky.Client/Pages/CrmItemHistoryPage.razor.cs similarity index 97% rename from Wonky.Client/Pages/CrmHistoryItemPage.razor.cs rename to Wonky.Client/Pages/CrmItemHistoryPage.razor.cs index 24c38f5b..8f4782b7 100644 --- a/Wonky.Client/Pages/CrmHistoryItemPage.razor.cs +++ b/Wonky.Client/Pages/CrmItemHistoryPage.razor.cs @@ -22,7 +22,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CrmHistoryItemPage : IDisposable +public partial class CrmItemHistoryPage : IDisposable { [Parameter] public string Sku { get; set; } = ""; [Parameter] public string CompanyId { get; set; } = ""; diff --git a/Wonky.Client/Pages/CrmListActivityCompanyPage.razor b/Wonky.Client/Pages/CrmListActivityForCompanyPage.razor similarity index 100% rename from Wonky.Client/Pages/CrmListActivityCompanyPage.razor rename to Wonky.Client/Pages/CrmListActivityForCompanyPage.razor diff --git a/Wonky.Client/Pages/CrmListActivityCompanyPage.razor.cs b/Wonky.Client/Pages/CrmListActivityForCompanyPage.razor.cs similarity index 94% rename from Wonky.Client/Pages/CrmListActivityCompanyPage.razor.cs rename to Wonky.Client/Pages/CrmListActivityForCompanyPage.razor.cs index 1166a21d..b9651882 100644 --- a/Wonky.Client/Pages/CrmListActivityCompanyPage.razor.cs +++ b/Wonky.Client/Pages/CrmListActivityForCompanyPage.razor.cs @@ -8,7 +8,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CrmListActivityCompanyPage : IDisposable +public partial class CrmListActivityForCompanyPage : IDisposable { [Parameter] public string CompanyId { get; set; } = ""; diff --git a/Wonky.Client/Pages/CrmListCompanyPage.razor.cs b/Wonky.Client/Pages/CrmListCompanyPage.razor.cs index 99c052a5..b7011066 100644 --- a/Wonky.Client/Pages/CrmListCompanyPage.razor.cs +++ b/Wonky.Client/Pages/CrmListCompanyPage.razor.cs @@ -24,6 +24,7 @@ using Wonky.Client.HttpInterfaces; using Wonky.Client.Services; using Wonky.Entity.DTO; using Wonky.Entity.Requests; +using Wonky.Entity.Views; namespace Wonky.Client.Pages { @@ -38,17 +39,20 @@ namespace Wonky.Client.Pages private MetaData _metaData { get; set; } = new(); private CompanyPagingParams _paging = new(); private Preferences _preferences { get; set; } = new(); + private UserInfoView _userInfo { get; set; } = new(); private string _savedSearch { get; set; } = ""; private bool _includeFolded { get; set; } - + protected override async Task OnInitializedAsync() { // set preferences _preferences = await _preferenceService.GetPreferences(); + _userInfo = await _storage.GetItemAsync("_xu"); _paging.OrderBy = _preferences.CompanySort; _paging.SearchColumn = _preferences.CompanySearch; _paging.PageSize = Convert.ToInt32(_preferences.PageSize); _paging.HasFolded = _includeFolded ? 1 : 0; + _paging.CountryCode = _userInfo.CountryCode; // load saved search _savedSearch = _preferences.CompanyFilterPhrase; diff --git a/Wonky.Client/Pages/CrmTaskItemListPage.razor b/Wonky.Client/Pages/CrmListTaskItemPage.razor similarity index 100% rename from Wonky.Client/Pages/CrmTaskItemListPage.razor rename to Wonky.Client/Pages/CrmListTaskItemPage.razor diff --git a/Wonky.Client/Pages/CrmTaskItemListPage.razor.cs b/Wonky.Client/Pages/CrmListTaskItemPage.razor.cs similarity index 95% rename from Wonky.Client/Pages/CrmTaskItemListPage.razor.cs rename to Wonky.Client/Pages/CrmListTaskItemPage.razor.cs index abc56a5f..2fab7dc9 100644 --- a/Wonky.Client/Pages/CrmTaskItemListPage.razor.cs +++ b/Wonky.Client/Pages/CrmListTaskItemPage.razor.cs @@ -25,10 +25,10 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CrmTaskItemListPage : IDisposable +public partial class CrmListTaskItemPage : IDisposable { [Inject] public UserPreferenceService UserPrefs { 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 ICrmTaskItemHttpRepository CrmTaskItemRepo { get; set; } diff --git a/Wonky.Client/Pages/OfficeListCustomerPage.razor b/Wonky.Client/Pages/OfficeListCustomerPage.razor index 2c81f2df..82f52132 100644 --- a/Wonky.Client/Pages/OfficeListCustomerPage.razor +++ b/Wonky.Client/Pages/OfficeListCustomerPage.razor @@ -16,7 +16,9 @@ *@ @using Wonky.Client.Components -@page "/office/companies" +@using Microsoft.AspNetCore.Authorization +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] +@page "/office/companies/{CountryCode}"
diff --git a/Wonky.Client/Pages/OfficeListCustomerPage.razor.cs b/Wonky.Client/Pages/OfficeListCustomerPage.razor.cs index 5405de5c..4704a488 100644 --- a/Wonky.Client/Pages/OfficeListCustomerPage.razor.cs +++ b/Wonky.Client/Pages/OfficeListCustomerPage.razor.cs @@ -27,9 +27,9 @@ public partial class OfficeListCustomerPage : IDisposable [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "dk"; - [Inject] public ILogger _logger { get; set; } - [Inject] public HttpInterceptorService _interceptor { get; set; } - [Inject] public IOfficeCustomerHttpRepository _companyRepo { get; set; } + [Inject] public ILogger Logger { get; set; } + [Inject] public HttpInterceptorService Interceptor { get; set; } + [Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; } [Inject] public UserPreferenceService PreferenceService { get; set; } private List _companyList { get; set; } = new(); private MetaData _metaData { get; set; } = new(); @@ -40,13 +40,13 @@ public partial class OfficeListCustomerPage : IDisposable protected override async Task OnParametersSetAsync() { - _interceptor.DisposeEvent(); - _interceptor.RegisterBeforeSendEvent(); + Interceptor.DisposeEvent(); + Interceptor.RegisterBeforeSendEvent(); // set preferences _preferences = await PreferenceService.GetPreferences(); - _paging.Country = CountryCode; + _paging.CountryCode = CountryCode; _paging.OrderBy = _preferences.CompanySort; _paging.SearchColumn = _preferences.CompanySearch; @@ -114,13 +114,13 @@ public partial class OfficeListCustomerPage : IDisposable private async Task GetCompanies() { - var pagingResponse = await _companyRepo.GetCompaniesPagedSalesRep(UserId, _paging); + var pagingResponse = await CustomerRepo.GetCompaniesPagedSalesRep(UserId, _paging); _companyList = pagingResponse.Items; _metaData = pagingResponse.MetaData; } public void Dispose() { - _interceptor.DisposeEvent(); + Interceptor.DisposeEvent(); } } \ No newline at end of file diff --git a/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor b/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor index 9af3844d..16e3561d 100644 --- a/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor +++ b/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor @@ -16,6 +16,8 @@ *@ @using Wonky.Client.Components +@using Microsoft.AspNetCore.Authorization +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] @page "/office/users/advisors/{CountryCode}/{UserId}/companies"
@@ -51,4 +53,4 @@
- \ No newline at end of file + \ No newline at end of file diff --git a/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor.cs b/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor.cs index e889da1a..f661ebed 100644 --- a/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor.cs +++ b/Wonky.Client/Pages/OfficeListCustomerSalesRepPage.razor.cs @@ -25,7 +25,7 @@ namespace Wonky.Client.Pages; public partial class OfficeListCustomerSalesRepPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; - [Parameter] public string CountryCode { get; set; } = ""; + [Parameter] public string CountryCode { get; set; } = "dk"; [Inject] public ILogger Logger { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } @@ -45,7 +45,7 @@ public partial class OfficeListCustomerSalesRepPage : IDisposable // set preferences _preferences = await PreferenceService.GetPreferences(); - _paging.Country = CountryCode; + _paging.CountryCode = CountryCode; _paging.OrderBy = _preferences.CompanySort; _paging.SearchColumn = _preferences.CompanySearch; _paging.PageSize = Convert.ToInt32(_preferences.PageSize); diff --git a/Wonky.Client/Pages/OfficeNewOrderPage.razor b/Wonky.Client/Pages/OfficeNewOrderPage.razor index 8474c648..1529f51b 100644 --- a/Wonky.Client/Pages/OfficeNewOrderPage.razor +++ b/Wonky.Client/Pages/OfficeNewOrderPage.razor @@ -8,37 +8,37 @@
- +
- +
- +
- - + +
- - + +
- - + +
@@ -145,21 +145,21 @@
- +
- +
- +
- +
- +
diff --git a/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs b/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs index 2d8a3c70..d02303e5 100644 --- a/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs +++ b/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs @@ -16,17 +16,18 @@ public partial class OfficeNewOrderPage : IDisposable { [CascadingParameter] DraftStateProvider DraftStateProvider { get; set; } [Parameter] public string CompanyId { get; set; } - [Inject] public HttpInterceptorService _interceptor { get; set; } - [Inject] public IOfficeCustomerHttpRepository _companyRepo { get; set; } + [Inject] public HttpInterceptorService Interceptor { get; set; } + [Inject] public IOfficeCustomerHttpRepository OfficeCustomerRepo { get; set; } [Inject] public IOfficeUserHttpRepository OfficeUserRepo { get; set; } - [Inject] public ICatalogHttpRepository _itemRepo { get; set; } + [Inject] public ICatalogHttpRepository CatalogRepo { get; set; } [Inject] public ICrmActivityHttpRepository CrmActivityRepo { get; set; } - [Inject] public ILogger _logger { get; set; } + [Inject] public ILogger Logger { get; set; } + + private ActivityDto _activity { get; set; } = new(); + private EditContext _editContext { get; set; } private PriceListModal _priceList { get; set; } = new(); private CompanyDto _company { get; set; } = new(); - private EditContext _editContext { get; set; } - private ActivityDto _draft { get; set; } = new(); - private UserInfoDto _userInfo { get; set; } = new(); + private WebUserInfoView _userInfo { get; set; } = new(); private SalesItemView _selectedItem { get; set; } = new(); private string Rate { get; set; } = "0"; private string Quantity { get; set; } = "1"; @@ -39,23 +40,21 @@ public partial class OfficeNewOrderPage : IDisposable protected override async Task OnParametersSetAsync() { - _interceptor.RegisterEvent(); - _interceptor.RegisterBeforeSendEvent(); - _company = await _companyRepo.GetCompanyById(CompanyId); + Interceptor.RegisterEvent(); + Interceptor.RegisterBeforeSendEvent(); + _company = await OfficeCustomerRepo.GetByCustomerId(CompanyId); } protected override async Task OnInitializedAsync() { - _userInfo = await OfficeUserRepo.GetAdvisorInfo(_company.SalesRepId); - _editContext = new EditContext(_draft); + _editContext = new EditContext(_activity); _editContext.OnFieldChanged += HandleFieldChanged; _editContext.OnValidationStateChanged += ValidationChanged; - _interceptor.RegisterEvent(); - _interceptor.RegisterBeforeSendEvent(); + _userInfo = await OfficeUserRepo.GetAdvisorInfo(_company.SalesRepId); - _draft.ActivityDate = $"{DateTime.Now:yyyy-MM-dd}" ; + _activity.ActivityDate = $"{DateTime.Now:yyyy-MM-dd}" ; // variable to validate if customer needs phone number update // _phone = _company.Phone; @@ -66,31 +65,31 @@ public partial class OfficeNewOrderPage : IDisposable _company.Phone = _company.Account[..8]; } - _draft.ActivityStatusEnum = "order"; - _draft.ActivityTypeEnum = "phone"; + _activity.ActivityStatusEnum = "order"; + _activity.ActivityTypeEnum = "phone"; // set up identification - _draft.CompanyId = _company.CompanyId; - _draft.BcId = _company.BcId; - _draft.SalesRepId = _company.SalesRepId; - _draft.SalesRep = _company.SalesRep; - _draft.Account = _company.Account; - _draft.VatNumber = _company.VatNumber; - _draft.Email = _company.Email; - _draft.Phone = _company.Phone; - _draft.Mobile = _company.Mobile; + _activity.CompanyId = _company.CompanyId; + _activity.BcId = _company.BcId; + _activity.SalesRepId = _company.SalesRepId; + _activity.SalesRep = _company.SalesRep; + _activity.Account = _company.Account; + _activity.VatNumber = _company.VatNumber; + _activity.Email = _company.Email; + _activity.Phone = _company.Phone; + _activity.Mobile = _company.Mobile; - _draft.Name = _company.Name; - _draft.Address1 = _company.Address1; - _draft.Address2 = _company.Address2; - _draft.ZipCode = _company.ZipCode; - _draft.City = _company.City; + _activity.Name = _company.Name; + _activity.Address1 = _company.Address1; + _activity.Address2 = _company.Address2; + _activity.ZipCode = _company.ZipCode; + _activity.City = _company.City; - _draft.DlvName = _company.Name; - _draft.DlvAddress1 = _company.Address1; - _draft.DlvAddress2 = _company.Address2; - _draft.DlvZipCode = _company.ZipCode; - _draft.DlvCity = _company.City; + _activity.DlvName = _company.Name; + _activity.DlvAddress1 = _company.Address1; + _activity.DlvAddress2 = _company.Address2; + _activity.DlvZipCode = _company.ZipCode; + _activity.DlvCity = _company.City; } private void CallPriceListModal() @@ -101,7 +100,7 @@ public partial class OfficeNewOrderPage : IDisposable private async Task SelectSku(SelectedSku sku) { ShowItem = true; - _selectedItem = await _itemRepo.GetSalesVariantId(sku.ItemId); + _selectedItem = await CatalogRepo.GetSalesVariantId(sku.ItemId); Price = sku.Rate; Quantity = sku.Quantity; } @@ -113,7 +112,7 @@ public partial class OfficeNewOrderPage : IDisposable private async Task CreateOrder() { - await CrmActivityRepo.CreateActivity(_draft); + await CrmActivityRepo.CreateActivity(_activity); } private async Task AddItem(SalesItemView salesItem) { @@ -162,14 +161,14 @@ public partial class OfficeNewOrderPage : IDisposable _editContext.OnFieldChanged -= HandleFieldChanged; _editContext.OnValidationStateChanged -= ValidationChanged; - _editContext = new EditContext(_draft); + _editContext = new EditContext(_activity); _editContext.OnFieldChanged += HandleFieldChanged; _editContext.OnValidationStateChanged += ValidationChanged; } public void Dispose() { - _interceptor.DisposeEvent(); + Interceptor.DisposeEvent(); _editContext.OnFieldChanged -= HandleFieldChanged; _editContext.OnValidationStateChanged -= ValidationChanged; } diff --git a/Wonky.Client/Pages/OfficeViewCrmUserPage.razor b/Wonky.Client/Pages/OfficeViewCrmUserPage.razor index 06569db1..32919438 100644 --- a/Wonky.Client/Pages/OfficeViewCrmUserPage.razor +++ b/Wonky.Client/Pages/OfficeViewCrmUserPage.razor @@ -25,7 +25,7 @@

Bruger info

- @if (UserInfoDto != null) + @if (_userInfo != null) { @@ -70,7 +70,7 @@ Sælgernr. - @UserInfoDto.Advisor + @_userInfo.Advisor Landekode diff --git a/Wonky.Client/Pages/OfficeViewCrmUserPage.razor.cs b/Wonky.Client/Pages/OfficeViewCrmUserPage.razor.cs index f40c2412..c85fca6b 100644 --- a/Wonky.Client/Pages/OfficeViewCrmUserPage.razor.cs +++ b/Wonky.Client/Pages/OfficeViewCrmUserPage.razor.cs @@ -22,6 +22,7 @@ using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpInterfaces; using Wonky.Client.HttpRepository; using Wonky.Entity.DTO; +using Wonky.Entity.Views; namespace Wonky.Client.Pages; @@ -34,7 +35,7 @@ public partial class OfficeViewCrmUserPage : IDisposable [Inject] public ILogger _logger { get; set; } [Inject] public NavigationManager _navigator { get; set; } [Inject] public IToastService _toast { get; set; } - private UserInfoDto UserInfoDto { get; set; } = new(); + private WebUserInfoView _userInfo { get; set; } = new(); private EditContext _editContext { get; set; } private UserUpdateDto _updateInfo { get; set; } = new(); private AdminResetPasswordDto _passwords { get; set; } = new(); @@ -54,14 +55,14 @@ public partial class OfficeViewCrmUserPage : IDisposable _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); - UserInfoDto = await OfficeUserRepo.GetAdvisorInfo(UserId); + _userInfo = await OfficeUserRepo.GetAdvisorInfo(UserId); - _updateInfo.Email = UserInfoDto.Email; - _updateInfo.CountryCode = UserInfoDto.CountryCode; - _updateInfo.FirstName = UserInfoDto.FirstName; - _updateInfo.LastName = UserInfoDto.LastName; - _updateInfo.PhoneNumber = UserInfoDto.PhoneNumber; - _updateInfo.LockoutEnabled = UserInfoDto.LockoutEnabled; + _updateInfo.Email = _userInfo.Email; + _updateInfo.CountryCode = _userInfo.CountryCode; + _updateInfo.FirstName = _userInfo.FirstName; + _updateInfo.LastName = _userInfo.LastName; + _updateInfo.PhoneNumber = _userInfo.PhoneNumber; + _updateInfo.LockoutEnabled = _userInfo.LockoutEnabled; _passwdContext.OnFieldChanged += PwHandleFieldChanged; _passwdContext.OnValidationStateChanged += PwValidationChanged; diff --git a/Wonky.Client/Pages/SalesCatalogPage.razor.cs b/Wonky.Client/Pages/SalesCatalogPage.razor.cs index 9410ae18..92c7b0f7 100644 --- a/Wonky.Client/Pages/SalesCatalogPage.razor.cs +++ b/Wonky.Client/Pages/SalesCatalogPage.razor.cs @@ -45,7 +45,9 @@ public partial class SalesCatalogPage : IDisposable { _preferences = await PreferenceService.GetPreferences(); _user = await Storage.GetItemAsync("_xu"); - _paging.Country = _user.CountryCode; + + _paging.CountryCode = _user.CountryCode; + _paging.OrderBy = _preferences.ItemSort; _paging.SearchColumn = _preferences.ItemSearch; _paging.PageSize = Convert.ToInt32(_preferences.PageSize); @@ -55,13 +57,6 @@ public partial class SalesCatalogPage : IDisposable await GetSalesItems(); } - private async Task GetSalesItems() - { - var pagingResponse = await ItemRepo.GetSalesItemsPaged(_paging); - _items = pagingResponse.Items!; - _metaData = pagingResponse.MetaData; - } - private async Task SetSearchPhrase(string searchTerm) { _items = new List(); @@ -108,6 +103,14 @@ public partial class SalesCatalogPage : IDisposable await GetSalesItems(); } + private async Task GetSalesItems() + { + var pagingResponse = await ItemRepo.GetSalesItemsPaged(_paging); + _items = pagingResponse.Items!; + _metaData = pagingResponse.MetaData; + } + + public void Dispose() => Interceptor.DisposeEvent(); } \ No newline at end of file diff --git a/Wonky.Client/Shared/Information.razor b/Wonky.Client/Shared/Information.razor new file mode 100644 index 00000000..793dc4c3 --- /dev/null +++ b/Wonky.Client/Shared/Information.razor @@ -0,0 +1,40 @@ +@* +// 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] +// +*@ + + +@if (_showBackdrop) +{ + +} \ No newline at end of file diff --git a/Wonky.Client/Shared/Information.razor.cs b/Wonky.Client/Shared/Information.razor.cs new file mode 100644 index 00000000..f8b35e6e --- /dev/null +++ b/Wonky.Client/Shared/Information.razor.cs @@ -0,0 +1,40 @@ +// 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.Components; + +namespace Wonky.Client.Shared; + +public partial class Information +{ + private string _modalDisplay = ""; + private bool _showBackdrop; + [Parameter] public string BodyMessage { get; set; } = ""; + [Parameter] public EventCallback OnOkClicked { get; set; } + + public void Show() + { + _modalDisplay = "block;"; + _showBackdrop = true; + StateHasChanged(); + } + + public void Hide() + { + _modalDisplay = "none;"; + _showBackdrop = false; + StateHasChanged(); + } +} \ No newline at end of file diff --git a/Wonky.Client/Shared/PriceListModal.razor.cs b/Wonky.Client/Shared/PriceListModal.razor.cs index 482cabaf..4eead5b7 100644 --- a/Wonky.Client/Shared/PriceListModal.razor.cs +++ b/Wonky.Client/Shared/PriceListModal.razor.cs @@ -42,7 +42,7 @@ public partial class PriceListModal : IDisposable protected override async Task OnInitializedAsync() { _preferences = await PreferenceService.GetPreferences(); - _paging.Country = CountryCode; + _paging.CountryCode = CountryCode; _paging.OrderBy = _preferences.ItemSort; _paging.SearchColumn = _preferences.ItemSearch; _paging.PageSize = Convert.ToInt32(_preferences.PageSize); diff --git a/Wonky.Client/wwwroot/index.html b/Wonky.Client/wwwroot/index.html index 63b02795..807bf0c0 100644 --- a/Wonky.Client/wwwroot/index.html +++ b/Wonky.Client/wwwroot/index.html @@ -29,7 +29,8 @@ loading ...
- + + diff --git a/Wonky.Client/wwwroot/scripts/bsTooltip.js b/Wonky.Client/wwwroot/scripts/bsTooltip.js new file mode 100644 index 00000000..9bb45d48 --- /dev/null +++ b/Wonky.Client/wwwroot/scripts/bsTooltip.js @@ -0,0 +1,4 @@ +var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')) +var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { + return new bootstrap.Tooltip(tooltipTriggerEl) +}) diff --git a/Wonky.Entity/DTO/UserInfoDto.cs b/Wonky.Entity/DTO/UserInfoDto.cs index ad50ffa9..5801c0ff 100644 --- a/Wonky.Entity/DTO/UserInfoDto.cs +++ b/Wonky.Entity/DTO/UserInfoDto.cs @@ -21,81 +21,71 @@ namespace Wonky.Entity.DTO; public class UserInfoDto { /// - /// First name + /// User Id /// - [Required(ErrorMessage = "Fornavn skal angives.")] - [MaxLength(50,ErrorMessage = "Der kan højst bruges 50 tegn.")] - public string FirstName { get; set; } = ""; - - /// - /// Last name - /// - [Required(ErrorMessage = "Efternavn skal angives.")] - [MaxLength(50,ErrorMessage = "Der kan højst bruges 50 tegn.")] - public string LastName { get; set; } = ""; - - /// - /// Country code - /// - [Required(ErrorMessage = "Landekode skal angives.")] - [MaxLength(50,ErrorMessage = "Der kan højst bruges 3 tegn.")] - public string CountryCode { get; set; } = ""; - - /// - /// Email - /// - [Required(ErrorMessage = "Email skal angives.")] - [MaxLength(50, ErrorMessage = "Der kan højst bruges 80 tegn.")] - public string Email { get; set; } = ""; - - /// - /// Phone number - /// - [MaxLength(20, ErrorMessage = "Der kan højst bruges 20 tegn.")] - public string PhoneNumber { get; set; } = ""; - + public string UserId { get; set; } = ""; /// /// Sales representative identification /// [Required(ErrorMessage = "Sælger identifikation skal angives.")] [MaxLength(50,ErrorMessage = "Der kan højst bruges 20 tegn.")] public string Advisor { get; set; } = ""; - /// - /// User Id + /// Country code /// - public string UserId { get; set; } = ""; - - /// - /// Lockout flag - /// - public bool LockoutEnabled { get; set; } - + [Required(ErrorMessage = "Landekode skal angives.")] + [MaxLength(50,ErrorMessage = "Der kan højst bruges 3 tegn.")] + public string CountryCode { get; set; } = ""; /// /// Country name /// public string CountryName { get; set; } = ""; - + /// + /// Email + /// + [Required(ErrorMessage = "Email skal angives.")] + [MaxLength(50, ErrorMessage = "Der kan højst bruges 80 tegn.")] + public string Email { get; set; } = ""; + /// + /// First name + /// + [Required(ErrorMessage = "Fornavn skal angives.")] + [MaxLength(50,ErrorMessage = "Der kan højst bruges 50 tegn.")] + public string FirstName { get; set; } = ""; + /// + /// Last name + /// + [Required(ErrorMessage = "Efternavn skal angives.")] + [MaxLength(50,ErrorMessage = "Der kan højst bruges 50 tegn.")] + public string LastName { get; set; } = ""; + /// + /// Phone number + /// + [MaxLength(20, ErrorMessage = "Der kan højst bruges 20 tegn.")] + public string PhoneNumber { get; set; } = ""; + /// + /// Lockout flag + /// + public bool LockoutEnabled { get; set; } /// /// Email confirmed flag /// public bool EmailConfirmed { get; set; } - - /// - /// Advisor flag - /// - public bool IsAdvisor { get; set; } - /// /// Admin flag /// public bool IsAdmin { get; set; } + /// + /// Advisor flag + /// + public bool IsAdvisor { get; set; } - public bool IsEDoc { get; set; } - public bool IsEShop { get; set; } - public bool IsSupervisor { get; set; } - public bool IsOffice { get; set; } - public bool IsWarehouse { get; set; } - public string Roles { get; set; } = ""; - public string ReferenceId { get; set; } = ""; + + // public bool IsEDoc { get; set; } + // public bool IsEShop { get; set; } + // public bool IsSupervisor { get; set; } + // public bool IsOffice { get; set; } + // public bool IsWarehouse { get; set; } + // public string Roles { get; set; } = ""; + // public string ReferenceId { get; set; } = ""; } \ No newline at end of file diff --git a/Wonky.Entity/Requests/CatalogPagingParams.cs b/Wonky.Entity/Requests/CatalogPagingParams.cs index ebad4a27..6f7112db 100644 --- a/Wonky.Entity/Requests/CatalogPagingParams.cs +++ b/Wonky.Entity/Requests/CatalogPagingParams.cs @@ -64,5 +64,5 @@ public class CatalogPagingParams /// /// Country code /// - public string Country { get; set; } = "dk"; + public string CountryCode { get; set; } = "dk"; } \ No newline at end of file diff --git a/Wonky.Entity/Requests/CompanyPagingParams.cs b/Wonky.Entity/Requests/CompanyPagingParams.cs index 473da12e..25632821 100644 --- a/Wonky.Entity/Requests/CompanyPagingParams.cs +++ b/Wonky.Entity/Requests/CompanyPagingParams.cs @@ -71,6 +71,6 @@ public class CompanyPagingParams /// public int HasFolded { get; set; } - public string Country { get; set; } = "dk"; + public string CountryCode { get; set; } = "dk"; } \ No newline at end of file diff --git a/Wonky.Entity/Views/WebUserInfoView.cs b/Wonky.Entity/Views/WebUserInfoView.cs new file mode 100644 index 00000000..f722096c --- /dev/null +++ b/Wonky.Entity/Views/WebUserInfoView.cs @@ -0,0 +1,34 @@ +// 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.Json.Serialization; + +namespace Wonky.Entity.Views; + +public class WebUserInfoView +{ + [JsonPropertyName("userId")] public string UserId { get; set; } = ""; + [JsonPropertyName("advisor")] public string Advisor { get; set; } = ""; + [JsonPropertyName("countryCode")] public string CountryCode { get; set; } = ""; + [JsonPropertyName("countryName")] public string CountryName { get; set; } = ""; + [JsonPropertyName("email")] public string Email { get; set; } = ""; + [JsonPropertyName("firstName")] public string FirstName { get; set; } = ""; + [JsonPropertyName("lastName")]public string LastName { get; set; } = ""; + [JsonPropertyName("phoneNumber")]public string PhoneNumber { get; set; } = ""; + [JsonPropertyName("lockoutEnabled")] public bool LockoutEnabled { get; set; } + [JsonPropertyName("emailConfirmed")] public bool EmailConfirmed { get; set; } + [JsonPropertyName("isAdmin")] public bool IsAdmin { get; set; } + [JsonPropertyName("isAdvisor")] public bool IsAdvisor { get; set; } +} \ No newline at end of file