diff --git a/Wonky.Client/HttpRepository/AdvisorCustomerRepository.cs b/Wonky.Client/HttpRepository/AdvisorCustomerRepository.cs index 41a2095b..f7b53ac1 100644 --- a/Wonky.Client/HttpRepository/AdvisorCustomerRepository.cs +++ b/Wonky.Client/HttpRepository/AdvisorCustomerRepository.cs @@ -1,4 +1,3 @@ - // 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 @@ -30,7 +29,7 @@ namespace Wonky.Client.HttpRepository; public class AdvisorCustomerRepository : IAdvisorCustomerRepository { - private readonly JsonSerializerOptions _options = new () + private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true }; @@ -42,7 +41,7 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository public AdvisorCustomerRepository(HttpClient client, ILogger logger, - NavigationManager navigation, + NavigationManager navigation, IOptions apiConfig) { _client = client; @@ -50,7 +49,7 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository _navigation = navigation; _conf = apiConfig.Value; } - + /// /// Get a list of CRM customers (SalesRep) /// @@ -78,15 +77,18 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository 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) + MetaData = JsonSerializer.Deserialize(response.Headers.GetValues("X-Pagination").First(), + _options) }; return pagingResponse; } + /// /// Get CRM customer by Id (SalesRep) /// @@ -109,7 +111,7 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository var result = JsonSerializer.Deserialize(content, _options); return result.CompanyId; } - + /// /// Delete the CRM customer (SalesRep) /// @@ -163,10 +165,10 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository Phone = model.Phone, ZipCode = model.ZipCode }; - + var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/erpData", updateModel, _options); var content = await response.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(content); + return JsonSerializer.Deserialize(content); } /// @@ -182,9 +184,16 @@ public class AdvisorCustomerRepository : IAdvisorCustomerRepository { "VatNumber", vatNumber } }; var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/vat", model, _options); + if (!response.IsSuccessStatusCode) + return new CompanyDto(); var content = await response.Content.ReadAsStringAsync(); - return response.IsSuccessStatusCode - ? JsonSerializer.Deserialize(content) - : new CompanyDto{Name = "ERROR", VatNumber = vatNumber, CrmNotes = $"FEJL: {content}"}; + return JsonSerializer.Deserialize(content) + ?? new CompanyDto { Name = "ERROR", VatNumber = vatNumber, CrmNotes = $"FEJL: {content}" }; } + + // public async Task ToggleVisibility(string companyId, bool hide) + // { + // var response = await _client.PostAsync($"{_conf.CrmCustomers}/{companyId}/toggle?hide={hide}", null); + // return response.IsSuccessStatusCode; + // } } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/IAdvisorCustomerRepository.cs b/Wonky.Client/HttpRepository/IAdvisorCustomerRepository.cs index cf3bfcc0..ae973076 100644 --- a/Wonky.Client/HttpRepository/IAdvisorCustomerRepository.cs +++ b/Wonky.Client/HttpRepository/IAdvisorCustomerRepository.cs @@ -76,4 +76,6 @@ public interface IAdvisorCustomerRepository /// /// A CRM Company entity Task UpdateCompanyVat(string companyId, string vatNumber); + + // Task ToggleVisibility(string companyId, bool hide); } \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorCustomerListPage.razor b/Wonky.Client/Pages/AdvisorCustomerListPage.razor index 6b80429a..18301ec6 100644 --- a/Wonky.Client/Pages/AdvisorCustomerListPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerListPage.razor @@ -34,13 +34,17 @@
-
- +
-
+
diff --git a/Wonky.Client/Pages/AdvisorCustomerListPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerListPage.razor.cs index 66c814d9..3f61cfb6 100644 --- a/Wonky.Client/Pages/AdvisorCustomerListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCustomerListPage.razor.cs @@ -39,12 +39,13 @@ namespace Wonky.Client.Pages private UserProfile Profiles { get; set; } = new(); private UserManagerEditView XUserInfo { get; set; } = new(); private string SavedSearch { get; set; } = ""; - private bool IncludeFolded { get; set; } private bool Working { get; set; } = true; private MetaData PageData { get; set; } = new(); private CustomerPaging Paging { get; set; } = new(); private string ButtonFoldedText { get; set; } = "Vis Ophørte"; - + private bool ShowFolded { get; set; } + private string ButtonHiddenText { get; set; } = "Vis Skjulte"; + private bool ShowHidden { get; set; } protected override void OnParametersSet() { Interceptor.RegisterEvent(); @@ -60,7 +61,7 @@ namespace Wonky.Client.Pages Paging.OrderBy = Profiles.CompanySort; Paging.SearchColumn = Profiles.CompanySearch; Paging.PageSize = Convert.ToInt32(Profiles.PageSize); - Paging.HasFolded = IncludeFolded ? 1 : 0; + Paging.HasFolded = ShowFolded ? 1 : 0; // load saved search SavedSearch = string.IsNullOrWhiteSpace(Profiles.CompanyFilterPhrase) ? "" : Profiles.CompanyFilterPhrase; @@ -74,14 +75,25 @@ namespace Wonky.Client.Pages private async Task OnFoldedClick() { Working = true; - IncludeFolded = !IncludeFolded; - ButtonFoldedText = IncludeFolded ? "Vis Aktive" : "Vis Ophørte"; + ShowFolded = !ShowFolded; + ButtonFoldedText = ShowFolded ? "Vis Aktive" : "Vis Ophørte"; CompanyList = new List(); Paging.PageNumber = 1; - Paging.HasFolded = IncludeFolded ? 1 : 0; + Paging.HasFolded = ShowFolded ? 1 : 0; await FetchCustomers(); } - + + private async Task OnHiddenClick() + { + Working = true; + ShowHidden = !ShowHidden; + ButtonHiddenText = ShowHidden ? "Vis Normale" : "Vis skjulte"; + CompanyList = new List(); + Paging.PageNumber = 1; + Paging.IsHidden = ShowHidden ? 1 : 0; + await FetchCustomers(); + } + private async Task SelectedPage(int page) { CompanyList = new List(); diff --git a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor index 3d0a2548..ba8e8856 100644 --- a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor @@ -31,223 +31,224 @@
}
-

@Company.Name

+

@Company.Name @(string.IsNullOrWhiteSpace(Company.Account) ? "" : "- ")@Company.Account

// erp context - -
- @* Company Name *@ - -
- - -
- @* Company Attention *@ - -
- - -
- @* Address 1 *@ - -
- - -
- @* Address 2 *@ - -
- - -
- @* Post Code *@ - -
- - -
- @* City Name *@ - -
- - -
- @* Phone *@ - -
- - -
- @* Mobile *@ - -
- - -
- @* Email *@ - -
- - -
-
- -
-
- -
- - @* account *@ - -
- -
- @* vat number*@ - -
-
- - - - - -
-
- @* vat lookup *@ -
- @switch (CountryCode) - { - case "dk": - - break; - case "no": - Firma opslag - break; - case "se": - Firma opslag - break; - } -
- @* save vat number *@ -
- + +
+ @* Company Name *@ + +
+ + +
+ @* Company Attention *@ + +
+ + +
+ @* Address 1 *@ + +
+ + +
+ @* Address 2 *@ + +
+ + +
+ @* Post Code *@ + +
+ + +
+ @* City Name *@ + +
+ + +
+ @* Phone *@ + +
+ + +
+ @* Mobile *@ + +
+ + +
+
+ +
+ @* Email *@ + +
+ + +
+
+ +
+
+ +
+
+ +
+
+ @* vat number*@ + +
+
+ + + + +
- -
- @* activity buttons *@ -
-
- Faktura -
- -
- Produkter -
-
- - -
+ @* vat lookup *@ +
+ @switch (CountryCode) + { + case "dk": + + break; + case "no": + brreg.no + break; + case "se": + allabolag.se + break; + }
- -
- @* crm context - OBS note *@ -
- -
- @if (string.IsNullOrWhiteSpace(Company.Note)) - { - - } - else - { - - } - -
- @* Save CRM data button *@ -
- -
+ @* save vat number *@ +
+
- @* crm context - contacts *@ -
- -
-
-
-
-
Stilling
-
Navn
-
Direkte
-
- -
+
+ +
+ @* activity buttons *@ +
+
+ Faktura +
+ +
+ Produkter +
+
+ + +
+
+ +
+ @* crm context - OBS note *@ +
+ +
+ @if (string.IsNullOrWhiteSpace(Company.Note)) + { + + } + else + { + + } + +
+ @* Save CRM data button *@ +
+ +
+
+ @* crm context - contacts *@ +
+ +
+
+
+
+
Stilling
+
Navn
+
Direkte
+
+
- @if (Contacts.Any()) +
+ @if (Contacts.Any()) + { + @foreach (var contact in Contacts) { - @foreach (var contact in Contacts) - { -
-
-
@contact.JobTitle
-
@contact.FirstName @contact.LastName
-
- @contact.PhoneDirect -
-
- -
+
+
+
@contact.JobTitle
+
@contact.FirstName @contact.LastName
+
+ @contact.PhoneDirect +
+
+
- } +
} -
+ }
- @* crm context - dates and interval *@ -
- -
-
- - - - -
-
- -
- -
- -
- - +
+ @* crm context - dates and interval *@ +
+ +
+
+ + + +
-
- -
- -
+ +
+
+ +
+ + +
+
+
+ +
+ +
+
} @if (Working) { - + } - - + + \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs index 4b141086..bb401a74 100644 --- a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs @@ -39,7 +39,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable [Inject] public IToastService Toaster { get; set; } [Inject] public ILogger Logger { get; set; } [Inject] public NavigationManager Navigator { get; set; } - [Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; } + [Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; } [Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; } [Inject] public IAdvisorContactRepository AdvisorContactRepo { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } @@ -68,7 +68,8 @@ public partial class AdvisorCustomerViewEditPage : IDisposable private ContactDto SelectedContact { get; set; } = new(); private ContactDto DefaultContact { get; set; } = new(); private ContactModal ContactPopup { get; set; } = new(); - private UserManagerEditView XUserInfo { get; set; } = new(); + private UserManagerEditView UserInfo { get; set; } = new(); + private string ToggleButtonText { get; set; } = ""; protected override async Task OnInitializedAsync() { @@ -86,19 +87,18 @@ public partial class AdvisorCustomerViewEditPage : IDisposable ErpContext.OnValidationStateChanged += ValidationChanged; // fetch user info from local storage - XUserInfo = await UserInfoService.GetUserInfo(); - CountryCode = XUserInfo.CountryCode.ToLower(); + UserInfo = await UserInfoService.GetUserInfo(); + CountryCode = UserInfo.CountryCode.ToLower(); CountryIsDk = CountryCode == "dk"; Logger.LogDebug("companyId => {}", CompanyId); - Company = await CompanyRepo.GetCompanyById(CompanyId); + Company = await CustomerRepo.GetCompanyById(CompanyId); Logger.LogDebug("company => {}", JsonSerializer.Serialize(Company)); - + ToggleButtonText = Company.IsHidden == 0 ? "Skjul kunde" : "Vis kunde"; CurrentVat = Company.VatNumber; - - Company.CountryCode = XUserInfo.CountryCode.ToLower(); + Company.CountryCode = UserInfo.CountryCode.ToLower(); // internal flag EnableActivity = Company.ValidVat; // override if canvas which has account property as empty string or "NY" @@ -110,7 +110,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable // visit date init LastVisit = DateTime.Parse(Company.LastVisit); NextVisit = DateTime.Parse(Company.NextVisit); - // if not previous visit is registered - force last visit date to 2020 + // if no previous visit is registered - force last visit date to 2020 if (LastVisit.Year < 2020) LastVisit = DateTime.Parse("2020-01-01"); // set next visit according to last visit and interval @@ -149,6 +149,13 @@ public partial class AdvisorCustomerViewEditPage : IDisposable await RequestErpUpdate(); } + private async Task ToggleVisibility() + { + Company.IsHidden = Company.IsHidden == 0 ? 1 : 0; + ToggleButtonText = Company.IsHidden == 0 ? "Skjul kunde" : "Vis kunde"; + Logger.LogDebug("ToggleVisibility => Company.IsHidden == {}", Company.IsHidden); + await CustomerRepo.UpdateCrmData(CompanyId, Company); + } private async Task RequestErpUpdate() { if(Working) @@ -277,7 +284,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable Company.LastVisit = $"{LastVisit:yyyy-MM-dd}"; Company.NextVisit = $"{NextVisit:yyyy-MM-dd}"; Company.IsHidden = 0; - var result = await CompanyRepo.UpdateCrmData(CompanyId, Company); + var result = await CustomerRepo.UpdateCrmData(CompanyId, Company); if (!string.IsNullOrWhiteSpace(result.CompanyId)) { Company = result; @@ -297,7 +304,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable return; Working = true; Toaster.ShowInfo("Vent venligst ...", "OPDATERER STAM DATA"); - var result = await CompanyRepo.UpdateErpData(CompanyId, Company); + var result = await CustomerRepo.UpdateErpData(CompanyId, Company); if (!string.IsNullOrWhiteSpace(result.CompanyId)) { Company = result; @@ -323,7 +330,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable return; Working = true; Toaster.ShowInfo("Vent venligst ...", "OPDATERER MOMS NUMMER"); - var result = await CompanyRepo.UpdateCompanyVat(CompanyId, Company.VatNumber); + var result = await CustomerRepo.UpdateCompanyVat(CompanyId, Company.VatNumber); if (!string.IsNullOrWhiteSpace(result.CompanyId)) { Company = result; diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json index 3e3653e5..caa5df56 100644 --- a/Wonky.Client/wwwroot/appsettings.json +++ b/Wonky.Client/wwwroot/appsettings.json @@ -1,7 +1,7 @@ { "appInfo": { "name": "Wonky Online", - "version": "0.117.0", + "version": "0.117.1", "rc": true, "sandBox": false, "image": "grumpy-coder.png"