diff --git a/Wonky.Client/Components/InvoiceTableComponent.razor.cs b/Wonky.Client/Components/InvoiceTableComponent.razor.cs index e9e8c622..8bebb139 100644 --- a/Wonky.Client/Components/InvoiceTableComponent.razor.cs +++ b/Wonky.Client/Components/InvoiceTableComponent.razor.cs @@ -6,9 +6,9 @@ namespace Wonky.Client.Components; public partial class InvoiceTableComponent { - [Parameter] public List InvoiceList { get; set; } = new(); [Parameter] public string CompanyId { get; set; } = ""; - private InvoiceViewModal InvoiceView { get; set; } + [Parameter] public List InvoiceList { get; set; } = new(); + private InvoiceViewModal InvoiceView { get; set; } = new(); private string InvoiceId { get; set; } = ""; private void ShowInvoice(string invoiceId) { diff --git a/Wonky.Client/HttpRepository/CrmHistoryHttpRepository.cs b/Wonky.Client/HttpRepository/CrmHistoryHttpRepository.cs index 29460dcb..fcb900c2 100644 --- a/Wonky.Client/HttpRepository/CrmHistoryHttpRepository.cs +++ b/Wonky.Client/HttpRepository/CrmHistoryHttpRepository.cs @@ -27,11 +27,11 @@ namespace Wonky.Client.HttpRepository; public class CrmHistoryHttpRepository : ICrmHistoryHttpRepository { - private readonly JsonSerializerOptions? _options = new JsonSerializerOptions + private readonly JsonSerializerOptions _options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }; - + private readonly NavigationManager _navigation; private ILogger _logger; private readonly HttpClient _client; @@ -39,13 +39,14 @@ public class CrmHistoryHttpRepository : ICrmHistoryHttpRepository public CrmHistoryHttpRepository( HttpClient client, ILogger logger, - NavigationManager navigation, IOptions configuration) + NavigationManager navigation, IOptions configuration) { _client = client; _logger = logger; _navigation = navigation; _api = configuration.Value; } + /// /// fetch a list of invoices for CompanyId /// @@ -71,7 +72,7 @@ public class CrmHistoryHttpRepository : ICrmHistoryHttpRepository return await _client .GetFromJsonAsync($"{_api.CrmCustomers}/{companyId}/invoices/{invoiceId}", _options); } - + /// /// fetch inventory - summarized list of products /// @@ -80,12 +81,14 @@ public class CrmHistoryHttpRepository : ICrmHistoryHttpRepository public async Task> FetchInventory(string companyId) { var response = await _client.GetAsync($"{_api.CrmCustomers}/{companyId}/{_api.CrmInventoryExt}"); + if (!response.IsSuccessStatusCode) + return new List(); var content = await response.Content.ReadAsStringAsync(); - return response.IsSuccessStatusCode - ? JsonSerializer.Deserialize>(content, _options) - : new List(); - + return string.IsNullOrWhiteSpace(content) + ? new List() + : JsonSerializer.Deserialize>(content, _options); } + /// /// Fetch history for all products /// @@ -93,10 +96,15 @@ public class CrmHistoryHttpRepository : ICrmHistoryHttpRepository /// List of products public async Task> FetchHistory(string companyId) { - return await _client.GetFromJsonAsync>( - $"{_api.CrmCustomers}/{companyId}/{_api.CrmProductExt}", _options); - + var response = await _client.GetAsync($"{_api.CrmCustomers}/{companyId}/{_api.CrmProductExt}"); + if (!response.IsSuccessStatusCode) + return new List(); + var content = await response.Content.ReadAsStringAsync(); + return string.IsNullOrWhiteSpace(content) + ? new List() + : JsonSerializer.Deserialize>(content, _options); } + /// /// Fetch history for single product /// @@ -105,8 +113,13 @@ public class CrmHistoryHttpRepository : ICrmHistoryHttpRepository /// list of products public async Task> FetchHistory(string companyId, string sku) { - return await _client.GetFromJsonAsync>( - $"{_api.CrmCustomers}/{companyId}/{_api.CrmProductExt}/{sku}", _options); + var response = await _client.GetAsync($"{_api.CrmCustomers}/{companyId}/{_api.CrmProductExt}/{sku}"); + if (!response.IsSuccessStatusCode) + return new List(); + var content = await response.Content.ReadAsStringAsync(); + return string.IsNullOrWhiteSpace(content) + ? new List() + : JsonSerializer.Deserialize>(content, _options); } /// @@ -117,7 +130,7 @@ public class CrmHistoryHttpRepository : ICrmHistoryHttpRepository /// date string public async Task ErpInvoiceToCrmRpc(string companyId, string syncDate) { - var x =await _client.GetAsync($"{_api.CrmCustomers}/{companyId}/{_api.CrmRpcSyncExt}/{syncDate}"); + var x = await _client.GetAsync($"{_api.CrmCustomers}/{companyId}/{_api.CrmRpcSyncExt}/{syncDate}"); if (!x.IsSuccessStatusCode) return ""; var content = await x.Content.ReadAsStringAsync(); diff --git a/Wonky.Client/Pages/CrmCompanyInventoryPage.razor b/Wonky.Client/Pages/CrmCompanyInventoryPage.razor index 92da5b26..9f40ab62 100644 --- a/Wonky.Client/Pages/CrmCompanyInventoryPage.razor +++ b/Wonky.Client/Pages/CrmCompanyInventoryPage.razor @@ -30,7 +30,8 @@ Besøg - + + @if (Working) { diff --git a/Wonky.Client/Pages/CrmCompanyInventoryPage.razor.cs b/Wonky.Client/Pages/CrmCompanyInventoryPage.razor.cs index be5104b6..57cbb3f3 100644 --- a/Wonky.Client/Pages/CrmCompanyInventoryPage.razor.cs +++ b/Wonky.Client/Pages/CrmCompanyInventoryPage.razor.cs @@ -28,22 +28,24 @@ namespace Wonky.Client.Pages; public partial class CrmCompanyInventoryPage : IDisposable { [Parameter] public string CompanyId { get; set; } = ""; - [Inject] public ICrmHistoryHttpRepository CrmHistoryRepo { get; set; } + [Inject] public ICrmHistoryHttpRepository HistoryRepo { get; set; } [Inject] public ICrmCompanyHttpRepository CompanyRepo { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public IToastService Toaster { get; set; } [Inject] public ILogger Logger { get; set; } private CompanyDto Company { get; set; } = new(); - private List? Inventory { get; set; } + private List Inventory { get; set; } = new(); private bool Working { get; set; } = true; - protected override async Task OnParametersSetAsync() + protected override async Task OnInitializedAsync() { Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); Company = await CompanyRepo.GetCompanyById(CompanyId); + var _ = await HistoryRepo.ErpInvoiceToCrmRpc(CompanyId, Company.HistorySync); + await FetchInventory(); Working = false; } @@ -51,12 +53,9 @@ public partial class CrmCompanyInventoryPage : IDisposable private async Task FetchInventory() { Working = true; - Toaster.ShowInfo("Arbejder på sagen ...", "Vent venligst"); - Inventory = await CrmHistoryRepo.FetchInventory(CompanyId); - if(Inventory.Any()) - Inventory = Inventory.OrderBy(x => x.Description).ToList(); + Inventory = await HistoryRepo.FetchInventory(CompanyId); + Inventory = Inventory.Any() ? Inventory.OrderBy(x => x.Description).ToList() : new List(); Working = false; - Toaster.ClearAll(); } public void Dispose() diff --git a/Wonky.Client/Pages/CrmCompanyInvoiceListPage.razor.cs b/Wonky.Client/Pages/CrmCompanyInvoiceListPage.razor.cs index 50595f05..876fc041 100644 --- a/Wonky.Client/Pages/CrmCompanyInvoiceListPage.razor.cs +++ b/Wonky.Client/Pages/CrmCompanyInvoiceListPage.razor.cs @@ -16,18 +16,19 @@ public partial class CrmCompanyInvoiceListPage : IDisposable [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ICrmHistoryHttpRepository HistoryRepo { get; set; } [Inject] public IToastService Toaster { get; set; } - private InvoiceListView History { get; set; } = new(); private CompanyDto Company { get; set; } = new(); private bool Working { get; set; } = true; - protected override async Task OnParametersSetAsync() + protected override async Task OnInitializedAsync() { Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); Company = await CompanyRepo.GetCompanyById(CompanyId); - + + var _ = await HistoryRepo.ErpInvoiceToCrmRpc(CompanyId, Company.HistorySync); + History = await HistoryRepo.FetchInvoiceList(CompanyId); Working = false; diff --git a/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs b/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs index edeca1f1..19f50765 100644 --- a/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs +++ b/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs @@ -137,7 +137,6 @@ public partial class CrmCompanyViewPage : IDisposable if (CountryIsDk) CompanyVatAddress = PrepareVatAddress(Company); - await FetchContacts(CompanyId); // remove loading image diff --git a/Wonky.Client/Pages/CrmReportNewPage.razor b/Wonky.Client/Pages/CrmReportNewPage.razor index 02f65b78..1eebf5d7 100644 --- a/Wonky.Client/Pages/CrmReportNewPage.razor +++ b/Wonky.Client/Pages/CrmReportNewPage.razor @@ -299,7 +299,6 @@ - @if (Working) { diff --git a/Wonky.Client/Pages/CrmReportNewPage.razor.cs b/Wonky.Client/Pages/CrmReportNewPage.razor.cs index b3817a82..99a1272d 100644 --- a/Wonky.Client/Pages/CrmReportNewPage.razor.cs +++ b/Wonky.Client/Pages/CrmReportNewPage.razor.cs @@ -14,20 +14,15 @@ // using System.Globalization; -using System.Runtime.Intrinsics; -using System.Text.Encodings.Web; using System.Text.Json; using Blazored.Toast.Services; -using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Forms; using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpInterfaces; -using Wonky.Client.HttpRepository; using Wonky.Client.Services; using Wonky.Client.Shared; using Wonky.Entity.DTO; -using Wonky.Entity.Models; using Wonky.Entity.Views; namespace Wonky.Client.Pages; @@ -86,7 +81,6 @@ public partial class CrmReportNewPage : IDisposable Report.Figures.KmEvening = 0; Report.Figures.Distance = 0; Report.Figures.DistancePrivateMonth = 0; - await GetKeyFigures(); Working = false; } diff --git a/Wonky.Client/Shared/InvoiceViewModal.razor.cs b/Wonky.Client/Shared/InvoiceViewModal.razor.cs index d1da3e93..329c7e23 100644 --- a/Wonky.Client/Shared/InvoiceViewModal.razor.cs +++ b/Wonky.Client/Shared/InvoiceViewModal.razor.cs @@ -37,14 +37,13 @@ public partial class InvoiceViewModal : IDisposable protected override async Task OnParametersSetAsync() { - Console.WriteLine($"CompanyId => {CompanyId}"); - Console.WriteLine($"InvoiceId => {InvoiceId}"); Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); - - Console.WriteLine("Getting invoice"); - Invoice = await HistoryRepo.FetchInvoice(CompanyId, InvoiceId); - Console.WriteLine($"Invoice => {JsonSerializer.Serialize(Invoice)}"); + + if (!string.IsNullOrWhiteSpace(InvoiceId)) + { + Invoice = await HistoryRepo.FetchInvoice(CompanyId, InvoiceId); + } } diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json index 933ba967..4be88fd7 100644 --- a/Wonky.Client/wwwroot/appsettings.json +++ b/Wonky.Client/wwwroot/appsettings.json @@ -1,13 +1,13 @@ { "appInfo": { "name": "Wonky Client", - "version": "0.79.1", + "version": "0.81.1", "rc": true, "sandBox": false, "image": "grumpy-coder.png" }, "apiConfig": { - "baseUrl": "https://dev.innotec.dk", + "baseUrl": "https://zeta.innotec.dk", "catalog": "api/v2/catalog", "crmCustomers": "api/v2/crm/companies", "crmInventoryExt": "history/inventory",