From 331a9fbcf7f5027579d083784edf963c89b55515 Mon Sep 17 00:00:00 2001 From: Frede Hundewadt <22748698+fhdk@users.noreply.github.com> Date: Thu, 28 Jul 2022 17:22:51 +0200 Subject: [PATCH] publish v0.10.16 --- .../Components/ActivityTableComponent.razor | 4 - .../AdminAdvisorCompanyTableComponent.razor | 2 +- .../AdminAdvisorTableComponent.razor | 2 +- .../AdminReportTableComponent.razor | 2 +- .../Components/AdminUserTableComponent.razor | 2 +- Wonky.Client/Components/ColorCoding.razor | 112 +++++++++-------- ...ent.razor => CustomerTableComponent.razor} | 13 +- ...zor.cs => CustomerTableComponent.razor.cs} | 2 +- .../Components/DisplayStateComponent.razor | 2 +- .../Components/ItemTableComponent.razor | 2 +- ...Bars.razor => LandingComponentAdmin.razor} | 13 +- ...azor.cs => LandingComponentAdmin.razor.cs} | 4 +- ...or.css => LandingComponentAdmin.razor.css} | 0 ...nt.razor => LandingComponentAdvisor.razor} | 16 +-- .../LandingComponentAdvisor.razor.cs | 107 ++++++++++++++++ .../LandingComponentAdvisor.razor.css | 5 + .../Components/LoaderBallTriangle.razor.cs | 18 --- Wonky.Client/Components/LoaderBars.razor.cs | 18 --- Wonky.Client/Components/LoaderSnake.razor | 26 ---- Wonky.Client/Components/LoaderSnake.razor.cs | 18 --- ...llTriangle.razor => LoaderThreeDots.razor} | 4 +- .../Components/LoaderThreeDots.razor.cs | 15 +++ .../Components/OrderCreateComponent.razor | 5 + .../Components/OrderCreateComponent.razor.cs | 28 +++++ .../Components/ReportTableComponent.razor | 2 +- .../Components/TaskItemTableComponent.razor | 12 +- .../VatAddressInputComponent.razor.cs | 2 + .../Components/WarehouseListComponent.razor | 6 +- .../WarehouseListComponent.razor.cs | 9 ++ .../HttpRepository/CompanyHttpRepository.cs | 24 ++++ .../HttpRepository/ICompanyHttpRepository.cs | 1 + Wonky.Client/Pages/ActivityNewVisitPage.razor | 2 +- .../Pages/ActivityTodayListPage.razor | 50 ++++---- .../Pages/ActivityTodayListPage.razor.cs | 8 +- .../Pages/AdminOfficeUserListPage.razor | 30 ----- .../Pages/AdminOfficeUserListPage.razor.cs | 46 ------- .../Pages/AdminOfficeUserViewPage.razor | 119 ------------------ .../Pages/AdminOfficeUserViewPage.razor.cs | 108 ---------------- ...tPage.razor => AllCustomersListPage.razor} | 12 +- ...razor.cs => AllCustomersListPage.razor.cs} | 9 +- ...erListPage.razor => CrmUserListPage.razor} | 0 ...Page.razor.cs => CrmUserListPage.razor.cs} | 2 +- ...orViewPage.razor => CrmUserViewPage.razor} | 2 +- ...Page.razor.cs => CrmUserViewPage.razor.cs} | 4 +- Wonky.Client/Pages/CustomerListPage.razor | 14 +-- Wonky.Client/Pages/CustomerNewPage.razor | 46 +++---- Wonky.Client/Pages/CustomerNewPage.razor.cs | 47 ++++--- Wonky.Client/Pages/CustomerViewPage.razor | 19 +-- Wonky.Client/Pages/CustomerViewPage.razor.cs | 47 +++---- Wonky.Client/Pages/HelpPage.razor | 14 +-- Wonky.Client/Pages/Index.razor | 7 +- Wonky.Client/Pages/ItemCatalogPage.razor | 2 +- Wonky.Client/Pages/Login.razor | 2 +- ...Page.razor => ReportListPageAdvisor.razor} | 0 ...azor.cs => ReportListPageAdvisor.razor.cs} | 2 +- ...tPage.razor => ReportListPageOffice.razor} | 0 ...razor.cs => ReportListPageOffice.razor.cs} | 2 +- ...wPage.razor => ReportNewPageAdvisor.razor} | 0 ...razor.cs => ReportNewPageAdvisor.razor.cs} | 4 +- ...Page.razor => ReportViewPageAdvisor.razor} | 0 ...azor.cs => ReportViewPageAdvisor.razor.cs} | 2 +- ...wPage.razor => ReportViewPageOffice.razor} | 0 ...razor.cs => ReportViewPageOffice.razor.cs} | 2 +- Wonky.Client/Pages/TaskItemListPage.razor.cs | 2 +- .../Pages/WarehouseOrderListPage.razor | 2 - .../Pages/WarehouseOrderViewPage.razor | 2 +- .../Pages/WarehouseOrderViewPage.razor.cs | 1 + Wonky.Client/Services/VatInfoLookupService.cs | 33 +++-- Wonky.Client/wwwroot/appsettings.json | 6 +- Wonky.Client/wwwroot/css/app.css | 11 +- Wonky.Client/wwwroot/index.html | 28 ++--- 71 files changed, 491 insertions(+), 672 deletions(-) rename Wonky.Client/Components/{CompanyTableComponent.razor => CustomerTableComponent.razor} (84%) rename Wonky.Client/Components/{CompanyTableComponent.razor.cs => CustomerTableComponent.razor.cs} (97%) rename Wonky.Client/Components/{LoaderBars.razor => LandingComponentAdmin.razor} (73%) rename Wonky.Client/Components/{AdvisorLandingComponent.razor.cs => LandingComponentAdmin.razor.cs} (96%) rename Wonky.Client/Components/{AdvisorLandingComponent.razor.css => LandingComponentAdmin.razor.css} (100%) rename Wonky.Client/Components/{AdvisorLandingComponent.razor => LandingComponentAdvisor.razor} (84%) create mode 100644 Wonky.Client/Components/LandingComponentAdvisor.razor.cs create mode 100644 Wonky.Client/Components/LandingComponentAdvisor.razor.css delete mode 100644 Wonky.Client/Components/LoaderBallTriangle.razor.cs delete mode 100644 Wonky.Client/Components/LoaderBars.razor.cs delete mode 100644 Wonky.Client/Components/LoaderSnake.razor delete mode 100644 Wonky.Client/Components/LoaderSnake.razor.cs rename Wonky.Client/Components/{LoaderBallTriangle.razor => LoaderThreeDots.razor} (93%) create mode 100644 Wonky.Client/Components/LoaderThreeDots.razor.cs create mode 100644 Wonky.Client/Components/OrderCreateComponent.razor create mode 100644 Wonky.Client/Components/OrderCreateComponent.razor.cs delete mode 100644 Wonky.Client/Pages/AdminOfficeUserListPage.razor delete mode 100644 Wonky.Client/Pages/AdminOfficeUserListPage.razor.cs delete mode 100644 Wonky.Client/Pages/AdminOfficeUserViewPage.razor delete mode 100644 Wonky.Client/Pages/AdminOfficeUserViewPage.razor.cs rename Wonky.Client/Pages/{AdminAdvisorCompanyListPage.razor => AllCustomersListPage.razor} (90%) rename Wonky.Client/Pages/{AdminAdvisorCompanyListPage.razor.cs => AllCustomersListPage.razor.cs} (91%) rename Wonky.Client/Pages/{AdminAdvisorUserListPage.razor => CrmUserListPage.razor} (100%) rename Wonky.Client/Pages/{AdminAdvisorUserListPage.razor.cs => CrmUserListPage.razor.cs} (96%) rename Wonky.Client/Pages/{AdminAdvisorViewPage.razor => CrmUserViewPage.razor} (99%) rename Wonky.Client/Pages/{AdminAdvisorViewPage.razor.cs => CrmUserViewPage.razor.cs} (96%) rename Wonky.Client/Pages/{AdvisorReportListPage.razor => ReportListPageAdvisor.razor} (100%) rename Wonky.Client/Pages/{AdvisorReportListPage.razor.cs => ReportListPageAdvisor.razor.cs} (96%) rename Wonky.Client/Pages/{AdminReportListPage.razor => ReportListPageOffice.razor} (100%) rename Wonky.Client/Pages/{AdminReportListPage.razor.cs => ReportListPageOffice.razor.cs} (96%) rename Wonky.Client/Pages/{AdvisorReportNewPage.razor => ReportNewPageAdvisor.razor} (100%) rename Wonky.Client/Pages/{AdvisorReportNewPage.razor.cs => ReportNewPageAdvisor.razor.cs} (98%) rename Wonky.Client/Pages/{AdvisorReportViewPage.razor => ReportViewPageAdvisor.razor} (100%) rename Wonky.Client/Pages/{AdvisorReportViewPage.razor.cs => ReportViewPageAdvisor.razor.cs} (97%) rename Wonky.Client/Pages/{AdminReportViewPage.razor => ReportViewPageOffice.razor} (100%) rename Wonky.Client/Pages/{AdminReportViewPage.razor.cs => ReportViewPageOffice.razor.cs} (98%) diff --git a/Wonky.Client/Components/ActivityTableComponent.razor b/Wonky.Client/Components/ActivityTableComponent.razor index a827f3ce..fe44779b 100644 --- a/Wonky.Client/Components/ActivityTableComponent.razor +++ b/Wonky.Client/Components/ActivityTableComponent.razor @@ -49,8 +49,4 @@ -} -else -{ - } \ No newline at end of file diff --git a/Wonky.Client/Components/AdminAdvisorCompanyTableComponent.razor b/Wonky.Client/Components/AdminAdvisorCompanyTableComponent.razor index 33327b11..86d1ca34 100644 --- a/Wonky.Client/Components/AdminAdvisorCompanyTableComponent.razor +++ b/Wonky.Client/Components/AdminAdvisorCompanyTableComponent.razor @@ -78,5 +78,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/AdminAdvisorTableComponent.razor b/Wonky.Client/Components/AdminAdvisorTableComponent.razor index b65e8593..9081522d 100644 --- a/Wonky.Client/Components/AdminAdvisorTableComponent.razor +++ b/Wonky.Client/Components/AdminAdvisorTableComponent.razor @@ -54,5 +54,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/AdminReportTableComponent.razor b/Wonky.Client/Components/AdminReportTableComponent.razor index 482ca124..0b8fdee0 100644 --- a/Wonky.Client/Components/AdminReportTableComponent.razor +++ b/Wonky.Client/Components/AdminReportTableComponent.razor @@ -84,5 +84,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/AdminUserTableComponent.razor b/Wonky.Client/Components/AdminUserTableComponent.razor index 5d4600c9..a18e5d95 100644 --- a/Wonky.Client/Components/AdminUserTableComponent.razor +++ b/Wonky.Client/Components/AdminUserTableComponent.razor @@ -51,5 +51,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/ColorCoding.razor b/Wonky.Client/Components/ColorCoding.razor index 804ba52a..da90c1c2 100644 --- a/Wonky.Client/Components/ColorCoding.razor +++ b/Wonky.Client/Components/ColorCoding.razor @@ -15,53 +15,65 @@ // *@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FarvekodeBetydning
- state - - Er besøgt. -
- state - - Planlæg besøg. -
- state - - Besøges nu! -
- state - - Opdater besøgsdato og/eller CVR/ORG nummer. -
- state - - Virksomhed ophørt! -
+
    +
  • +
    +
    + state +
    +
    + Er nylig besøgt +
    +
    +
  • +
  • +
    +
    + state +
    +
    + Planlagt besøg +
    +
    +
  • +
  • +
    +
    + state +
    +
    + Besøgsinterval overskredet +
    +
    +
  • +
  • +
    +
    + state +
    +
    + Ajourfør besøgsdato/interval +
    +
    +
  • +
  • +
    +
    + state +
    +
    + CVR/ORG nummer ugyldig +
    +
    +
  • +
  • +
    +
    + state +
    +
    + Virksomhed ophørt +
    +
    +
  • +
diff --git a/Wonky.Client/Components/CompanyTableComponent.razor b/Wonky.Client/Components/CustomerTableComponent.razor similarity index 84% rename from Wonky.Client/Components/CompanyTableComponent.razor rename to Wonky.Client/Components/CustomerTableComponent.razor index af568e2c..8bbf8486 100644 --- a/Wonky.Client/Components/CompanyTableComponent.razor +++ b/Wonky.Client/Components/CustomerTableComponent.razor @@ -36,8 +36,7 @@ { - - + @company.Name @@ -52,12 +51,8 @@ @company.City - - + } @@ -67,5 +62,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/CompanyTableComponent.razor.cs b/Wonky.Client/Components/CustomerTableComponent.razor.cs similarity index 97% rename from Wonky.Client/Components/CompanyTableComponent.razor.cs rename to Wonky.Client/Components/CustomerTableComponent.razor.cs index 868cd676..ad2dbe70 100644 --- a/Wonky.Client/Components/CompanyTableComponent.razor.cs +++ b/Wonky.Client/Components/CustomerTableComponent.razor.cs @@ -24,7 +24,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components { - public partial class CompanyTableComponent + public partial class CustomerTableComponent { [Parameter] public List Companies { get; set; } = new(); [Parameter] public EventCallback OnDelete { get; set; } diff --git a/Wonky.Client/Components/DisplayStateComponent.razor b/Wonky.Client/Components/DisplayStateComponent.razor index d5b866ac..6896a8b9 100644 --- a/Wonky.Client/Components/DisplayStateComponent.razor +++ b/Wonky.Client/Components/DisplayStateComponent.razor @@ -15,7 +15,7 @@ // *@ -state +state @code{ [Parameter] public string StateClass { get; set; } = ""; } diff --git a/Wonky.Client/Components/ItemTableComponent.razor b/Wonky.Client/Components/ItemTableComponent.razor index 3953d720..ae22f1c1 100644 --- a/Wonky.Client/Components/ItemTableComponent.razor +++ b/Wonky.Client/Components/ItemTableComponent.razor @@ -55,5 +55,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/LoaderBars.razor b/Wonky.Client/Components/LandingComponentAdmin.razor similarity index 73% rename from Wonky.Client/Components/LoaderBars.razor rename to Wonky.Client/Components/LandingComponentAdmin.razor index d5e9f34f..51cc8ee9 100644 --- a/Wonky.Client/Components/LoaderBars.razor +++ b/Wonky.Client/Components/LandingComponentAdmin.razor @@ -15,12 +15,7 @@ // *@ -@if (Loading) -{ -
-
- - loading ... -
-
-} \ No newline at end of file +@using Microsoft.AspNetCore.Authorization +@using Wonky.Client.Components + +Inno Web CRM diff --git a/Wonky.Client/Components/AdvisorLandingComponent.razor.cs b/Wonky.Client/Components/LandingComponentAdmin.razor.cs similarity index 96% rename from Wonky.Client/Components/AdvisorLandingComponent.razor.cs rename to Wonky.Client/Components/LandingComponentAdmin.razor.cs index 8f520c6d..b5d3b43a 100644 --- a/Wonky.Client/Components/AdvisorLandingComponent.razor.cs +++ b/Wonky.Client/Components/LandingComponentAdmin.razor.cs @@ -29,10 +29,10 @@ using Wonky.Entity.Models; using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class AdvisorLandingComponent : IDisposable +public partial class LandingComponentAdmin : IDisposable { [Inject] private UserPreferenceService _preferenceService { get; set; } - [Inject] private ILogger _logger { get; set; } + [Inject] private ILogger _logger { get; set; } [Inject] private HttpInterceptorService _interceptor { get; set; } [Inject] private IToastService _toast { get; set; } [Inject] private ITaskItemHttpRepository _taskItemRepo { get; set; } diff --git a/Wonky.Client/Components/AdvisorLandingComponent.razor.css b/Wonky.Client/Components/LandingComponentAdmin.razor.css similarity index 100% rename from Wonky.Client/Components/AdvisorLandingComponent.razor.css rename to Wonky.Client/Components/LandingComponentAdmin.razor.css diff --git a/Wonky.Client/Components/AdvisorLandingComponent.razor b/Wonky.Client/Components/LandingComponentAdvisor.razor similarity index 84% rename from Wonky.Client/Components/AdvisorLandingComponent.razor rename to Wonky.Client/Components/LandingComponentAdvisor.razor index 079b2633..1b38e0e6 100644 --- a/Wonky.Client/Components/AdvisorLandingComponent.razor +++ b/Wonky.Client/Components/LandingComponentAdvisor.razor @@ -19,6 +19,7 @@ @using Wonky.Client.Components Inno Web CRM +
@@ -26,22 +27,11 @@

@(DateTime.Now.ToLongDateString())

- +
-
- -

Administrator

-
- - -

Lager

-
- - -

Supervisor

-
\ No newline at end of file + diff --git a/Wonky.Client/Components/LandingComponentAdvisor.razor.cs b/Wonky.Client/Components/LandingComponentAdvisor.razor.cs new file mode 100644 index 00000000..0151f0cd --- /dev/null +++ b/Wonky.Client/Components/LandingComponentAdvisor.razor.cs @@ -0,0 +1,107 @@ + +// 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; +using Blazored.LocalStorage; +using Blazored.Toast.Services; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; +using Microsoft.VisualBasic; +using Wonky.Client.HttpInterceptors; +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.Components; +public partial class LandingComponentAdvisor : IDisposable +{ + [Inject] private UserPreferenceService _preferenceService { get; set; } + [Inject] private ILogger _logger { get; set; } + [Inject] private HttpInterceptorService _interceptor { get; set; } + [Inject] private IToastService _toast { get; set; } + [Inject] private ITaskItemHttpRepository _taskItemRepo { get; set; } + [Inject] private NavigationManager _navigator { get; set; } + + private readonly JsonSerializerOptions _options = new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true, + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }; + + private Preferences _prefs { get; set; } = new(); + private string _workDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}"; + private string _today { get; set; } = $"{DateTime.Now:yyyy-MM-dd}"; + private List? _taskItems { get; set; } = new(); + + + protected override async Task OnInitializedAsync() + { + _prefs = await _preferenceService.GetPreferences(); + if(!string.IsNullOrWhiteSpace(_prefs.WorkDate)) + _workDate = _prefs.WorkDate; + + _interceptor.RegisterEvent(); + _interceptor.RegisterBeforeSendEvent(); + + //await GetTaskItems(_workDate); + await GetAllTasks(); + } + + private async Task GetAllTasks() + { + _taskItems = await _taskItemRepo.GetTaskList(); + } + + private async Task OnCompleteTask(string taskItemId) + { + await _preferenceService.SetWorkDate(DateTime.Now); + var item = _taskItems.Find(x => x.TaskItemId == taskItemId); + _navigator.NavigateTo($"/companies/{item.ReferenceId}/activities/new"); + } + + private async Task GetWorkdateTasks(string workDate) + { + _workDate = workDate; + _taskItems = new List(); + _taskItems = await _taskItemRepo.GetTaskList(workDate); + } + + private async Task OnTaskCompleted(string taskItemId) + { + var item = _taskItems.Find(x => x.TaskItemId == taskItemId); + item.IsCompleted = true; + await _taskItemRepo.UpdateTaskItem(taskItemId, item); + _taskItems.Remove(item); + _toast.ShowInfo("Opgaven er markeret som udført."); + } + + private async Task OnDeleteConfirmed(string taskItemId) + { + var item = _taskItems.First(x => x.TaskItemId == taskItemId); + _taskItems.Remove(item); + await _taskItemRepo.DeleteTaskItem(taskItemId); + _toast.ShowInfo("Opgaven er slettet."); + } + + public void Dispose() + { + _interceptor.DisposeEvent(); + } +} + diff --git a/Wonky.Client/Components/LandingComponentAdvisor.razor.css b/Wonky.Client/Components/LandingComponentAdvisor.razor.css new file mode 100644 index 00000000..13f6848f --- /dev/null +++ b/Wonky.Client/Components/LandingComponentAdvisor.razor.css @@ -0,0 +1,5 @@ +.workDate { + font-size: 1.2em; + font-weight: bold; + font-variant: small-caps; +} \ No newline at end of file diff --git a/Wonky.Client/Components/LoaderBallTriangle.razor.cs b/Wonky.Client/Components/LoaderBallTriangle.razor.cs deleted file mode 100644 index 9176186e..00000000 --- a/Wonky.Client/Components/LoaderBallTriangle.razor.cs +++ /dev/null @@ -1,18 +0,0 @@ - -namespace Wonky.Client.Components; - -public partial class LoaderBallTriangle -{ - private bool Loading { get; set; } - - protected override async Task OnInitializedAsync() - { - Loading = true; - - await Task.Delay(10000); - - Loading = false; - } - - -} \ No newline at end of file diff --git a/Wonky.Client/Components/LoaderBars.razor.cs b/Wonky.Client/Components/LoaderBars.razor.cs deleted file mode 100644 index ed3ed82e..00000000 --- a/Wonky.Client/Components/LoaderBars.razor.cs +++ /dev/null @@ -1,18 +0,0 @@ - -namespace Wonky.Client.Components; - -public partial class LoaderBars -{ - private bool Loading { get; set; } - - protected override async Task OnInitializedAsync() - { - Loading = true; - - await Task.Delay(10000); - - Loading = false; - } - - -} \ No newline at end of file diff --git a/Wonky.Client/Components/LoaderSnake.razor b/Wonky.Client/Components/LoaderSnake.razor deleted file mode 100644 index 34a1fb49..00000000 --- a/Wonky.Client/Components/LoaderSnake.razor +++ /dev/null @@ -1,26 +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] -// -*@ - -@if (Loading) -{ -
-
- - loading ... -
-
-} \ No newline at end of file diff --git a/Wonky.Client/Components/LoaderSnake.razor.cs b/Wonky.Client/Components/LoaderSnake.razor.cs deleted file mode 100644 index 3464d043..00000000 --- a/Wonky.Client/Components/LoaderSnake.razor.cs +++ /dev/null @@ -1,18 +0,0 @@ - -namespace Wonky.Client.Components; - -public partial class LoaderSnake -{ - private bool Loading { get; set; } - - protected override async Task OnInitializedAsync() - { - Loading = true; - - await Task.Delay(10000); - - Loading = false; - } - - -} \ No newline at end of file diff --git a/Wonky.Client/Components/LoaderBallTriangle.razor b/Wonky.Client/Components/LoaderThreeDots.razor similarity index 93% rename from Wonky.Client/Components/LoaderBallTriangle.razor rename to Wonky.Client/Components/LoaderThreeDots.razor index dc933d37..8b8575b3 100644 --- a/Wonky.Client/Components/LoaderBallTriangle.razor +++ b/Wonky.Client/Components/LoaderThreeDots.razor @@ -20,7 +20,7 @@
- loading ... + loading ...
-} \ No newline at end of file +} diff --git a/Wonky.Client/Components/LoaderThreeDots.razor.cs b/Wonky.Client/Components/LoaderThreeDots.razor.cs new file mode 100644 index 00000000..1b2c6fdc --- /dev/null +++ b/Wonky.Client/Components/LoaderThreeDots.razor.cs @@ -0,0 +1,15 @@ + +using Microsoft.AspNetCore.Components; + +namespace Wonky.Client.Components; + +public partial class LoaderThreeDots +{ + [Parameter] public bool Loading { get; set; } = true; + + protected override async Task OnInitializedAsync() + { + await Task.Delay(30000); + Loading = false; + } +} \ No newline at end of file diff --git a/Wonky.Client/Components/OrderCreateComponent.razor b/Wonky.Client/Components/OrderCreateComponent.razor new file mode 100644 index 00000000..ec43e650 --- /dev/null +++ b/Wonky.Client/Components/OrderCreateComponent.razor @@ -0,0 +1,5 @@ +

OrderCreateComponent

+ +@code { + +} \ No newline at end of file diff --git a/Wonky.Client/Components/OrderCreateComponent.razor.cs b/Wonky.Client/Components/OrderCreateComponent.razor.cs new file mode 100644 index 00000000..8746b4b4 --- /dev/null +++ b/Wonky.Client/Components/OrderCreateComponent.razor.cs @@ -0,0 +1,28 @@ +using Microsoft.AspNetCore.Components; +using Wonky.Client.HttpInterceptors; +using Wonky.Client.HttpRepository; +using Wonky.Entity.DTO; + +namespace Wonky.Client.Components; + +public partial class OrderCreateComponent : IDisposable +{ + [Parameter] public string CustomerId { get; set; } = ""; + + [Inject] private ICompanyHttpRepository _companyRepo { get; set; } + [Inject] private HttpInterceptorService _interceptor { get; set; } + + private CompanyDto _company { get; set; } + + protected override async Task OnParametersSetAsync() + { + _interceptor.RegisterEvent(); + _interceptor.RegisterBeforeSendEvent(); + _company = await _companyRepo.GetCompanyById(CustomerId); + } + + public void Dispose() + { + _interceptor.DisposeEvent(); + } +} \ No newline at end of file diff --git a/Wonky.Client/Components/ReportTableComponent.razor b/Wonky.Client/Components/ReportTableComponent.razor index b991ca96..bd998ac2 100644 --- a/Wonky.Client/Components/ReportTableComponent.razor +++ b/Wonky.Client/Components/ReportTableComponent.razor @@ -82,5 +82,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/TaskItemTableComponent.razor b/Wonky.Client/Components/TaskItemTableComponent.razor index 05d31cf0..f3ada1ca 100644 --- a/Wonky.Client/Components/TaskItemTableComponent.razor +++ b/Wonky.Client/Components/TaskItemTableComponent.razor @@ -46,22 +46,22 @@ @if (task.TaskTypeEnum is "Recall") { - - Ændre + + } @@ -73,5 +73,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Components/VatAddressInputComponent.razor.cs b/Wonky.Client/Components/VatAddressInputComponent.razor.cs index aa59162b..1879ccc3 100644 --- a/Wonky.Client/Components/VatAddressInputComponent.razor.cs +++ b/Wonky.Client/Components/VatAddressInputComponent.razor.cs @@ -35,11 +35,13 @@ public partial class VatAddressInputComponent : IDisposable { await OnValidSubmit.InvokeAsync(Address); } + private void HandleFieldChanged(object? sender, FieldChangedEventArgs e) { _formInvalid = !_editContext.Validate(); StateHasChanged(); } + public void Dispose() { _editContext.OnFieldChanged -= HandleFieldChanged; diff --git a/Wonky.Client/Components/WarehouseListComponent.razor b/Wonky.Client/Components/WarehouseListComponent.razor index 95b499ac..f39017e7 100644 --- a/Wonky.Client/Components/WarehouseListComponent.razor +++ b/Wonky.Client/Components/WarehouseListComponent.razor @@ -77,9 +77,5 @@ } else { - + } - -@code { - -} \ No newline at end of file diff --git a/Wonky.Client/Components/WarehouseListComponent.razor.cs b/Wonky.Client/Components/WarehouseListComponent.razor.cs index 17c0e5a1..f3ca3e21 100644 --- a/Wonky.Client/Components/WarehouseListComponent.razor.cs +++ b/Wonky.Client/Components/WarehouseListComponent.razor.cs @@ -15,6 +15,7 @@ public partial class WarehouseListComponent private bool _readyToShip; private List _orders { get; set; } + private bool Loading { get; set; } protected override async Task OnInitializedAsync() { @@ -28,31 +29,39 @@ public partial class WarehouseListComponent private async Task GetOrderStatusNone() { + Loading = true; _orders = new List(); _orders = await _warehouseRepo.GetWarehouseOrderListByStatus("none"); _readyToShip = false; + Loading = false; } private async Task GetOrderStatusPicked() { + Loading = true; _orders = new List(); _orders = await _warehouseRepo.GetWarehouseOrderListByStatus("picked"); _readyToShip = false; + Loading = false; } private async Task GetOrderStatusPacked() { + Loading = true; _orders = new List(); _orders = await _warehouseRepo.GetWarehouseOrderListByStatus("packed"); _readyToShip = true; + Loading = false; } private async Task GetOrderStatusShipped() { + Loading = true; _orders = new List(); var orderList = await _warehouseRepo.GetWarehouseOrderListByStatus("shipped"); _orders = orderList.OrderByDescending(x => x.OrderDate).ToList(); _readyToShip = false; + Loading = false; } private async Task SetProcessStatusShipped() diff --git a/Wonky.Client/HttpRepository/CompanyHttpRepository.cs b/Wonky.Client/HttpRepository/CompanyHttpRepository.cs index 91c47051..357b4792 100644 --- a/Wonky.Client/HttpRepository/CompanyHttpRepository.cs +++ b/Wonky.Client/HttpRepository/CompanyHttpRepository.cs @@ -56,6 +56,30 @@ public class CompanyHttpRepository : ICompanyHttpRepository _apiConfig = apiConfig.Value; } + public async Task> GetAllCustomersPaged(CompanyPagingParams pagingParameters) + { + var queryString = new Dictionary + { + ["pageNumber"] = pagingParameters.PageNumber.ToString(), + ["pageSize"] = pagingParameters.PageSize.ToString(), + ["searchTerm"] = pagingParameters.SearchTerm, + ["searchColumn"] = pagingParameters.SearchColumn, + ["orderBy"] = pagingParameters.OrderBy, + ["isHidden"] = pagingParameters.IsHidden.ToString(), + ["hasFolded"] = pagingParameters.HasFolded.ToString() + }; + var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.CrmCustomer}/page", queryString)); + + 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; + + } public async Task> GetCompaniesPaged(CompanyPagingParams pagingParameters) { var queryString = new Dictionary diff --git a/Wonky.Client/HttpRepository/ICompanyHttpRepository.cs b/Wonky.Client/HttpRepository/ICompanyHttpRepository.cs index 4c470582..af429998 100644 --- a/Wonky.Client/HttpRepository/ICompanyHttpRepository.cs +++ b/Wonky.Client/HttpRepository/ICompanyHttpRepository.cs @@ -23,6 +23,7 @@ namespace Wonky.Client.HttpRepository; public interface ICompanyHttpRepository { + Task> GetAllCustomersPaged(CompanyPagingParams pagingParameters); Task> GetCompaniesPaged(CompanyPagingParams pagingParameters); Task> GetAdminAdvisorCompaniesPaged(string userId, CompanyPagingParams pagingParameters); Task GetCompanyByAccount(string accountNumber); diff --git a/Wonky.Client/Pages/ActivityNewVisitPage.razor b/Wonky.Client/Pages/ActivityNewVisitPage.razor index d86c839c..6025426e 100644 --- a/Wonky.Client/Pages/ActivityNewVisitPage.razor +++ b/Wonky.Client/Pages/ActivityNewVisitPage.razor @@ -352,7 +352,7 @@ \ No newline at end of file diff --git a/Wonky.Client/Pages/AdminAdvisorViewPage.razor.cs b/Wonky.Client/Pages/CrmUserViewPage.razor.cs similarity index 96% rename from Wonky.Client/Pages/AdminAdvisorViewPage.razor.cs rename to Wonky.Client/Pages/CrmUserViewPage.razor.cs index 825c351d..6da3bd96 100644 --- a/Wonky.Client/Pages/AdminAdvisorViewPage.razor.cs +++ b/Wonky.Client/Pages/CrmUserViewPage.razor.cs @@ -24,13 +24,13 @@ using Wonky.Entity.DTO; namespace Wonky.Client.Pages; -public partial class AdminAdvisorViewPage : IDisposable +public partial class CrmUserViewPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = ""; [Inject] private HttpInterceptorService _interceptor { get; set; } [Inject] private IUserHttpRepository _userRepo { get; set; } - [Inject] private ILogger _logger { get; set; } + [Inject] private ILogger _logger { get; set; } [Inject] private NavigationManager _navigator { get; set; } [Inject] private IToastService _toast { get; set; } private AdminUserInfoDto AdminUserInfo { get; set; } = new(); diff --git a/Wonky.Client/Pages/CustomerListPage.razor b/Wonky.Client/Pages/CustomerListPage.razor index fd4bdd7c..72915966 100644 --- a/Wonky.Client/Pages/CustomerListPage.razor +++ b/Wonky.Client/Pages/CustomerListPage.razor @@ -21,25 +21,25 @@ @attribute [Authorize(Roles = "Advisor")] -
+
- +
- +
- +
- +
- +
Opret kunde @@ -48,4 +48,4 @@
- \ No newline at end of file + \ No newline at end of file diff --git a/Wonky.Client/Pages/CustomerNewPage.razor b/Wonky.Client/Pages/CustomerNewPage.razor index e50d8348..c1b21f8e 100644 --- a/Wonky.Client/Pages/CustomerNewPage.razor +++ b/Wonky.Client/Pages/CustomerNewPage.razor @@ -85,7 +85,7 @@ - + @@ -109,8 +109,8 @@ @@ -130,65 +130,65 @@ diff --git a/Wonky.Client/Pages/CustomerNewPage.razor.cs b/Wonky.Client/Pages/CustomerNewPage.razor.cs index a35f0e60..a58703b1 100644 --- a/Wonky.Client/Pages/CustomerNewPage.razor.cs +++ b/Wonky.Client/Pages/CustomerNewPage.razor.cs @@ -45,7 +45,7 @@ namespace Wonky.Client.Pages [Inject] private HttpInterceptorService _interceptor { get; set; } [Inject] private VatInfoLookupService _vatService { get; set; } private EditContext _editContext { get; set; } - private CompanyDto _companyObject { get; set; } = new(); + private CompanyDto _company { get; set; } = new(); private VirkRegInfo _virkRegInfo { get; set; } = new(); private List _vInfos { get; set; } = new(); private VatAddress _vatAddress { get; set; } = new(); @@ -53,12 +53,12 @@ namespace Wonky.Client.Pages private string RegState = ""; private DateTime _lastVisit { get; set; } private DateTime _nextVisit { get; set; } - private bool _dk = false; + private bool _dk { get; set; } = true; private bool _showInfos = true; protected override async Task OnInitializedAsync() { - _editContext = new EditContext(_companyObject); + _editContext = new EditContext(_company); _editContext.OnFieldChanged += HandleFieldChanged; _editContext.OnValidationStateChanged += ValidationChanged; @@ -66,14 +66,13 @@ namespace Wonky.Client.Pages var ux = await _storage.GetItemAsync("_xu"); _dk = ux.CountryCode.ToLower() == "dk"; - _companyObject.SalesRepId = ux.Id; - _companyObject.CountryCode = ux.CountryCode.ToLower(); + _company.SalesRepId = ux.Id; + _company.CountryCode = ux.CountryCode.ToLower(); _lastVisit = DateTime.Now; - _nextVisit = DateTime.Now.AddDays(_companyObject.Interval * 7); - - _companyObject.LastVisit = $"{_lastVisit:yyyy-MM-dd}"; - _companyObject.LastVisit = $"{_nextVisit:yyyy-MM-dd}"; + _nextVisit = DateTime.Now.AddDays(_company.Interval * 7); + _company.LastVisit = $"{_lastVisit:yyyy-MM-dd}"; + _company.NextVisit = $"{_nextVisit:yyyy-MM-dd}"; _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); @@ -112,38 +111,38 @@ namespace Wonky.Client.Pages _showInfos = false; _virkRegInfo = (from x in _vInfos where x.VatNumber == vatNumber select x).First(); RegState = _virkRegInfo.States[^1].State == "NORMAL" ? "the-good" : "the-ugly"; - _companyObject.Name = _virkRegInfo.Name; - _companyObject.Address1 = _virkRegInfo.Address; - _companyObject.Address2 = _virkRegInfo.CoName; - _companyObject.ZipCode = _virkRegInfo.ZipCode; - _companyObject.City = _virkRegInfo.City; - _companyObject.VatNumber = _virkRegInfo.VatNumber; - _companyObject.ValidVat = 1; + _company.Name = _virkRegInfo.Name; + _company.Address1 = _virkRegInfo.Address; + _company.Address2 = _virkRegInfo.CoName; + _company.ZipCode = _virkRegInfo.ZipCode; + _company.City = _virkRegInfo.City; + _company.VatNumber = _virkRegInfo.VatNumber; + _company.ValidVat = 1; StateHasChanged(); } private async Task SubmitCompanyForm() { - _companyObject.LastVisit = $"{_lastVisit:yyyy-MM-dd}"; - _companyObject.NextVisit = $"{_nextVisit:yyyy-MM-dd}"; + _company.LastVisit = $"{_lastVisit:yyyy-MM-dd}"; + _company.NextVisit = $"{_nextVisit:yyyy-MM-dd}"; - var newId = await _companyRepo.CreateCompany(_companyObject); + var newId = await _companyRepo.CreateCompany(_company); if (!string.IsNullOrWhiteSpace(newId)) { - _toast.ShowSuccess($"'{_companyObject.Name}' er oprettet i CRM."); + _toast.ShowSuccess($"'{_company.Name}' er oprettet i CRM."); _navigator.NavigateTo($"/companies/{newId}"); } else { - _toast.ShowWarning($"'{_companyObject.Name}' IKKE oprettet."); + _toast.ShowWarning($"'{_company.Name}' IKKE oprettet."); } } private void HandleFieldChanged(object sender, FieldChangedEventArgs e) { - _nextVisit = _lastVisit.AddDays(7 * _companyObject.Interval); + _nextVisit = _lastVisit.AddDays(7 * _company.Interval); - if (!_companyObject.ValidDateSpan()) + if (!_company.ValidDateSpan()) { _toast.ShowError("Dato for næste besøg skal ligge efter sidste besøg."); _formInvalid = true; @@ -160,7 +159,7 @@ namespace Wonky.Client.Pages _editContext.OnFieldChanged -= HandleFieldChanged; - _editContext = new EditContext(_companyObject); + _editContext = new EditContext(_company); _formInvalid = !_editContext.Validate(); diff --git a/Wonky.Client/Pages/CustomerViewPage.razor b/Wonky.Client/Pages/CustomerViewPage.razor index bb17da22..48bc1df2 100644 --- a/Wonky.Client/Pages/CustomerViewPage.razor +++ b/Wonky.Client/Pages/CustomerViewPage.razor @@ -28,6 +28,8 @@

@_company.Account - @_company.Name

+ @if (_dk && !_validVat) + {
@@ -61,7 +63,7 @@
- - + +
- - + + Telefon - - + +
Firmanavn - - + + Attention - - + +
Adresse1 - - + + Adresse2 - - + +
Postnr - - + + Bynavn - - + +
Mobil - - + + Email - - + +
} - + }
@@ -163,13 +165,13 @@ - + Besøgt - + @@ -207,10 +209,11 @@ Varelinjer
- + +
@@ -219,5 +222,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Pages/CustomerViewPage.razor.cs b/Wonky.Client/Pages/CustomerViewPage.razor.cs index 5e04f71d..d692540d 100644 --- a/Wonky.Client/Pages/CustomerViewPage.razor.cs +++ b/Wonky.Client/Pages/CustomerViewPage.razor.cs @@ -63,6 +63,7 @@ public partial class CustomerViewPage : IDisposable private string _actionLink = ""; private bool _working; private string _btnUpdateText = "Opdater"; + private bool _dk { get; set; } = true; private readonly JsonSerializerOptions _options = new () { @@ -84,63 +85,62 @@ public partial class CustomerViewPage : IDisposable { var ux = await _storage.GetItemAsync("_xu"); countryCode = ux.CountryCode; + _dk = ux.CountryCode.ToLower() == "dk"; + _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); _company = await _companyRepo.GetCompanyById(CompanyId); - - _logger.LogDebug("CompanyView => _company <= {_company}", JsonSerializer.Serialize(_company, _options)); - _orgVat = _company.VatNumber; _company.CountryCode = ux.CountryCode.ToLower(); - _enableActivity = _company.ValidVat; // override if canvas which has account property as empty string or "NY" if (_company.Account == "NY" || string.IsNullOrWhiteSpace(_company.Account)) _enableActivity = 1; - - vatAddress = PrepareVatAddress(_company); + + if (_dk) + vatAddress = PrepareVatAddress(_company); if (_company.Interval == 0) _company.Interval = 8; _lastVisit = DateTime.Parse(_company.LastVisit); _nextVisit = DateTime.Parse(_company.NextVisit); + if (_lastVisit.Year < 2020) - { _lastVisit = DateTime.Parse("2020-01-01"); - } if (!_company.ValidDateSpan()) _nextVisit = _lastVisit.AddDays(_company.Interval * 7); _visitState = Utils.GetVisitState($"{_nextVisit:yyyy-MM-dd}"); - - _actionLink = $"/companies/{CompanyId}/activities/new"; - + _actionLink = $"/companies/{CompanyId}/activities/new"; // used when drawing visit button if(_company.HasFolded == 1) { + // this is only used if user has selected to show all customers _hasFolded = true; _vatState = "the-dead"; _visitState = "the-dead"; } else { + // simple format validation if CRM indicates invalid vatNumber if (_company.ValidVat == 0 && !string.IsNullOrWhiteSpace(_company.VatNumber)) _company.ValidVat = VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber) ? 1 : 0; - _validVat = _company.ValidVat == 1; - _vatState = _company.ValidVat == 1 ? "the-good" : "the-draw"; + // flags + _validVat = _company.ValidVat == 1; // flag set if company has a valid vatNumber + _vatState = _company.ValidVat == 1 ? "the-good" : "no-vat"; // assign css class } _editContext = new EditContext(_company); _editContext.OnFieldChanged += HandleFieldChanged; _editContext.OnValidationStateChanged += ValidationChanged; - } private void HandleFieldChanged(object sender, FieldChangedEventArgs e) { _nextVisit = _lastVisit.AddDays(_company.Interval * 7); + // simple format validation if CRM indicates invalid vatNumber if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber)) { _formInvalid = true; @@ -151,6 +151,7 @@ public partial class CustomerViewPage : IDisposable } StateHasChanged(); } + private void ValidationChanged(object sender, ValidationStateChangedEventArgs e) { _formInvalid = false; @@ -167,6 +168,7 @@ public partial class CustomerViewPage : IDisposable private async Task SubmitUpdate() { + // simple format validation if CRM indicates invalid vatNumber if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber)) { _toast.ShowError($"CVR/VAT/ORG nummer mangler eller er ugyldig."); @@ -178,21 +180,18 @@ public partial class CustomerViewPage : IDisposable _company.LastVisit = $"{_lastVisit:yyyy-MM-dd}"; _company.NextVisit = $"{_nextVisit:yyyy-MM-dd}"; _company.IsHidden = 0; + // flag if backend should update ERP system if (_company.VatNumber != _orgVat) _company.UpdateErpVat = 1; - var x = JsonSerializer.Serialize(_company, _options); - _logger.LogInformation(x); var success = await _companyRepo.UpdateCompany(CompanyId, _company ); if (success) { - _toast.ShowSuccess("Opdatering er afsendt. Der nogle minutter inden data er opdateret."); + _toast.ShowSuccess("Opdatering er afsendt. Der går nogle minutter inden data er opdateret."); _company = await _companyRepo.GetCompanyById(_company.CompanyId); _company.ValidVat = 1; StateHasChanged(); } - - _hideButtons = false; } @@ -205,11 +204,11 @@ public partial class CustomerViewPage : IDisposable HouseNumber = address.HouseNumber, ZipCode = address.ZipCode }); + if (!_vInfos.Any()) - { _toast.ShowError($"Ingen virksomheder fundet."); - } } + private void SelectCompany(string vatNumber, bool syncAll) { _virkRegInfo = (from x in _vInfos where x.VatNumber == vatNumber select x).First(); @@ -226,7 +225,7 @@ public partial class CustomerViewPage : IDisposable { _company.VatNumber = _virkRegInfo.VatNumber; } - + // empty list _vInfos = new List(); StateHasChanged(); } @@ -237,9 +236,10 @@ public partial class CustomerViewPage : IDisposable _editContext.OnFieldChanged -= HandleFieldChanged; _editContext.OnValidationStateChanged -= ValidationChanged; } + private static VatAddress PrepareVatAddress(CompanyDto model) { - var digits = "123456789".ToCharArray(); + var digits = "1234567890".ToCharArray(); // process address1 var pos1 = model.Address1.IndexOfAny(digits); if (pos1 > 0) @@ -262,6 +262,7 @@ public partial class CustomerViewPage : IDisposable HouseNumber = Regex.Replace(model.Address2[pos2..], "[^0-9]", "") }; } + // return empty model return new VatAddress(); } } \ No newline at end of file diff --git a/Wonky.Client/Pages/HelpPage.razor b/Wonky.Client/Pages/HelpPage.razor index 99122065..4891eab7 100644 --- a/Wonky.Client/Pages/HelpPage.razor +++ b/Wonky.Client/Pages/HelpPage.razor @@ -23,23 +23,21 @@ @attribute [Authorize(Roles = "Advisor,Admin,Office,Warehouse")]
-
+
Wonky Logo
-
+
-
-
+

Piktogrammer

-
-
+

Testede browsere

  • Safari (macOS, iOS)
  • @@ -51,9 +49,8 @@
-
-
+

Open Source

+ @code{ diff --git a/Wonky.Client/Pages/Index.razor b/Wonky.Client/Pages/Index.razor index a5c3b475..743e4de5 100644 --- a/Wonky.Client/Pages/Index.razor +++ b/Wonky.Client/Pages/Index.razor @@ -21,15 +21,20 @@ @using Wonky.Client.Components; @using Microsoft.AspNetCore.Authorization + @attribute [Authorize(Roles = "Advisor,Admin,Supervisor,Office,Warehouse")] - + + + + + @code{ } diff --git a/Wonky.Client/Pages/ItemCatalogPage.razor b/Wonky.Client/Pages/ItemCatalogPage.razor index 986d7a0e..f911ec6d 100644 --- a/Wonky.Client/Pages/ItemCatalogPage.razor +++ b/Wonky.Client/Pages/ItemCatalogPage.razor @@ -21,7 +21,7 @@ @attribute [Authorize(Roles = "Advisor,Admin")] -
+
diff --git a/Wonky.Client/Pages/Login.razor b/Wonky.Client/Pages/Login.razor index 83b35065..cd2ccbc6 100644 --- a/Wonky.Client/Pages/Login.razor +++ b/Wonky.Client/Pages/Login.razor @@ -61,7 +61,7 @@
@if (execLogin) { - + }
diff --git a/Wonky.Client/Pages/AdvisorReportListPage.razor b/Wonky.Client/Pages/ReportListPageAdvisor.razor similarity index 100% rename from Wonky.Client/Pages/AdvisorReportListPage.razor rename to Wonky.Client/Pages/ReportListPageAdvisor.razor diff --git a/Wonky.Client/Pages/AdvisorReportListPage.razor.cs b/Wonky.Client/Pages/ReportListPageAdvisor.razor.cs similarity index 96% rename from Wonky.Client/Pages/AdvisorReportListPage.razor.cs rename to Wonky.Client/Pages/ReportListPageAdvisor.razor.cs index a776168e..a56e99a5 100644 --- a/Wonky.Client/Pages/AdvisorReportListPage.razor.cs +++ b/Wonky.Client/Pages/ReportListPageAdvisor.razor.cs @@ -21,7 +21,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdvisorReportListPage : IDisposable +public partial class ReportListPageAdvisor : IDisposable { [Inject] private IReportHttpRepository _reportRepo { get; set; } [Inject] private HttpInterceptorService _interceptor { get; set; } diff --git a/Wonky.Client/Pages/AdminReportListPage.razor b/Wonky.Client/Pages/ReportListPageOffice.razor similarity index 100% rename from Wonky.Client/Pages/AdminReportListPage.razor rename to Wonky.Client/Pages/ReportListPageOffice.razor diff --git a/Wonky.Client/Pages/AdminReportListPage.razor.cs b/Wonky.Client/Pages/ReportListPageOffice.razor.cs similarity index 96% rename from Wonky.Client/Pages/AdminReportListPage.razor.cs rename to Wonky.Client/Pages/ReportListPageOffice.razor.cs index f78a3004..6bb0ca26 100644 --- a/Wonky.Client/Pages/AdminReportListPage.razor.cs +++ b/Wonky.Client/Pages/ReportListPageOffice.razor.cs @@ -21,7 +21,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdminReportListPage : IDisposable +public partial class ReportListPageOffice : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = ""; diff --git a/Wonky.Client/Pages/AdvisorReportNewPage.razor b/Wonky.Client/Pages/ReportNewPageAdvisor.razor similarity index 100% rename from Wonky.Client/Pages/AdvisorReportNewPage.razor rename to Wonky.Client/Pages/ReportNewPageAdvisor.razor diff --git a/Wonky.Client/Pages/AdvisorReportNewPage.razor.cs b/Wonky.Client/Pages/ReportNewPageAdvisor.razor.cs similarity index 98% rename from Wonky.Client/Pages/AdvisorReportNewPage.razor.cs rename to Wonky.Client/Pages/ReportNewPageAdvisor.razor.cs index 6bc6d180..6b7a3494 100644 --- a/Wonky.Client/Pages/AdvisorReportNewPage.razor.cs +++ b/Wonky.Client/Pages/ReportNewPageAdvisor.razor.cs @@ -29,14 +29,14 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdvisorReportNewPage : IDisposable +public partial class ReportNewPageAdvisor : IDisposable { [Inject] private HttpInterceptorService _interceptor { get; set; } [Inject] private UserPreferenceService _userPrefs { get; set; } [Inject] private IActivityHttpRepository _activityRepo { get; set; } [Inject] private IReportHttpRepository _reportRepo { get; set; } [Inject] private NavigationManager _navigator { get; set; } - [Inject] private ILogger _logger { get; set; } + [Inject] private ILogger _logger { get; set; } [Inject] private IToastService _toast { get; set; } private EditContext _editContext { get; set; } private ReportDto _report { get; set; } = new(); diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor b/Wonky.Client/Pages/ReportViewPageAdvisor.razor similarity index 100% rename from Wonky.Client/Pages/AdvisorReportViewPage.razor rename to Wonky.Client/Pages/ReportViewPageAdvisor.razor diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs b/Wonky.Client/Pages/ReportViewPageAdvisor.razor.cs similarity index 97% rename from Wonky.Client/Pages/AdvisorReportViewPage.razor.cs rename to Wonky.Client/Pages/ReportViewPageAdvisor.razor.cs index e8a4ba72..b8f5ed87 100644 --- a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs +++ b/Wonky.Client/Pages/ReportViewPageAdvisor.razor.cs @@ -20,7 +20,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdvisorReportViewPage +public partial class ReportViewPageAdvisor { [Parameter] public string ReportDate { get; set; } [Inject] private IReportHttpRepository _reportRepo { get; set; } diff --git a/Wonky.Client/Pages/AdminReportViewPage.razor b/Wonky.Client/Pages/ReportViewPageOffice.razor similarity index 100% rename from Wonky.Client/Pages/AdminReportViewPage.razor rename to Wonky.Client/Pages/ReportViewPageOffice.razor diff --git a/Wonky.Client/Pages/AdminReportViewPage.razor.cs b/Wonky.Client/Pages/ReportViewPageOffice.razor.cs similarity index 98% rename from Wonky.Client/Pages/AdminReportViewPage.razor.cs rename to Wonky.Client/Pages/ReportViewPageOffice.razor.cs index 834c28a8..0e6f8707 100644 --- a/Wonky.Client/Pages/AdminReportViewPage.razor.cs +++ b/Wonky.Client/Pages/ReportViewPageOffice.razor.cs @@ -21,7 +21,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdminReportViewPage : IDisposable +public partial class ReportViewPageOffice : IDisposable { /// /// Country code from url parameter diff --git a/Wonky.Client/Pages/TaskItemListPage.razor.cs b/Wonky.Client/Pages/TaskItemListPage.razor.cs index e0580445..1a38d93f 100644 --- a/Wonky.Client/Pages/TaskItemListPage.razor.cs +++ b/Wonky.Client/Pages/TaskItemListPage.razor.cs @@ -27,7 +27,7 @@ namespace Wonky.Client.Pages; public partial class TaskItemListPage : IDisposable { [Inject] public UserPreferenceService UserPrefs { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] private HttpInterceptorService _interceptor { get; set; } [Inject] private NavigationManager _navigator { get; set; } [Inject] private ITaskItemHttpRepository _taskItemRepo { get; set; } diff --git a/Wonky.Client/Pages/WarehouseOrderListPage.razor b/Wonky.Client/Pages/WarehouseOrderListPage.razor index 6c9faaf2..006c4abe 100644 --- a/Wonky.Client/Pages/WarehouseOrderListPage.razor +++ b/Wonky.Client/Pages/WarehouseOrderListPage.razor @@ -1,6 +1,4 @@ -@using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components -@attribute [Authorize(Roles = "Admin,Warehouse,Office")] @page "/warehouse/orders" \ No newline at end of file diff --git a/Wonky.Client/Pages/WarehouseOrderViewPage.razor b/Wonky.Client/Pages/WarehouseOrderViewPage.razor index 978cb7d5..2ed4a44c 100644 --- a/Wonky.Client/Pages/WarehouseOrderViewPage.razor +++ b/Wonky.Client/Pages/WarehouseOrderViewPage.razor @@ -100,5 +100,5 @@ } else { - + } \ No newline at end of file diff --git a/Wonky.Client/Pages/WarehouseOrderViewPage.razor.cs b/Wonky.Client/Pages/WarehouseOrderViewPage.razor.cs index 85ab1779..eeb31942 100644 --- a/Wonky.Client/Pages/WarehouseOrderViewPage.razor.cs +++ b/Wonky.Client/Pages/WarehouseOrderViewPage.razor.cs @@ -13,6 +13,7 @@ public partial class WarehouseOrderViewPage : IDisposable [Inject] private NavigationManager _navigator { get; set; } private WarehouseOrderView _order { get; set; } = new(); + private bool Loading { get; set; } protected override async Task OnParametersSetAsync() { diff --git a/Wonky.Client/Services/VatInfoLookupService.cs b/Wonky.Client/Services/VatInfoLookupService.cs index aa35d943..19c44691 100644 --- a/Wonky.Client/Services/VatInfoLookupService.cs +++ b/Wonky.Client/Services/VatInfoLookupService.cs @@ -28,7 +28,6 @@ public class VatInfoLookupService private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true }; private readonly HttpClient _client; private readonly IOptions _apiConfig; - private readonly List _noData = new() { new VirkRegInfo { Name = "INGEN DATA" } }; private readonly ApiConfig _config; public VatInfoLookupService(HttpClient client, IOptions apiConfig) @@ -40,28 +39,38 @@ public class VatInfoLookupService public async Task> QueryVirkRegistry(VirkParams query) { + Console.WriteLine(JsonSerializer.Serialize(query)); + if(!ValidateCvrQuery(query)) - { throw new ArgumentException("CvrQuery does not validate"); - } + var queryString = new Dictionary { ["vatNumber"] = $"{query.VatNumber}", ["streetName"] = $"{query.StreetName}", ["houseNumber"] = $"{query.HouseNumber}", - ["zipCode"] = $"{query.ZipCode}" + ["zipCode"] = $"{query.ZipCode}", + ["entityName"] = $"{query.EntityName}" }; var endpoint = QueryHelpers.AddQueryString(_config.ServiceVirk, queryString); var response = await _client.GetAsync(endpoint); var content = await response.Content.ReadAsStringAsync(); + + Console.WriteLine(content); + var jsonResult = JsonSerializer.Deserialize>(content, _options); - if (string.IsNullOrWhiteSpace(content) || !jsonResult.Any()) return _noData; - if (!string.IsNullOrWhiteSpace(query.VatNumber)) return jsonResult; + + if (string.IsNullOrWhiteSpace(content) || !jsonResult.Any()) + return new List(); + + if (!string.IsNullOrWhiteSpace(query.VatNumber)) + return jsonResult; + var result = jsonResult //.Where(x => x.States[^1].State == "NORMAL") .OrderBy(x => x.Name).ToList(); - return result.Count == 0 ? _noData : result; + return result.Count == 0 ? new List() : result; } public async Task> QueryBrRegistry(string vatNumber) @@ -70,19 +79,21 @@ public class VatInfoLookupService { ["vatNumber"] = $"{vatNumber}" }; + var endpoint = QueryHelpers.AddQueryString(_config.ServiceBrReg, queryString); var response = await _client.GetAsync(endpoint); var content = await response.Content.ReadAsStringAsync(); var jsonResult = JsonSerializer.Deserialize>(content, _options); - if (string.IsNullOrWhiteSpace(content) || !jsonResult.Any()) return _noData; + if (string.IsNullOrWhiteSpace(content) || !jsonResult.Any()) + return new List(); var result = jsonResult //.Where(x => x.States[^1].State == "NORMAL") .OrderBy(x => x.Name).ToList(); - return result.Count == 0 ? _noData : result; + return result.Count == 0 ? new List() : result; } public async Task> QueryViesRegistry(string vatNumber) @@ -97,13 +108,13 @@ public class VatInfoLookupService var content = await response.Content.ReadAsStringAsync(); var jsonResult = JsonSerializer.Deserialize>(content, _options); - if (string.IsNullOrWhiteSpace(content) || !jsonResult.Any()) return _noData; + if (string.IsNullOrWhiteSpace(content) || !jsonResult.Any()) return new List(); var result = jsonResult //.Where(x => x.States[^1].State == "NORMAL") .OrderBy(x => x.Name).ToList(); - return result.Count == 0 ? _noData : result; + return result.Count == 0 ? new List() : result; } private static bool ValidateCvrQuery(VirkParams query) diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json index 597fa250..f2337f69 100644 --- a/Wonky.Client/wwwroot/appsettings.json +++ b/Wonky.Client/wwwroot/appsettings.json @@ -1,16 +1,16 @@ { "appInfo": { "name": "Wonky Client", - "version": "0.10.10", + "version": "0.10.16", "rc": false, "sandBox": false, "image": "grumpy-coder.png" }, "apiConfig": { - "innoBaseUrl": "https://production.innotec.dk", + "innoBaseUrl": "https://staging.innotec.dk", "glsTrackUrl": "https://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DK01/DA/5004.htm?txtAction=71000&txtRefNo=", "glsId": "", - "servcieVirk": "api/v2/services/virk", + "serviceVirk": "api/v2/services/virk", "serviceBrReg": "api/v2/services/brReg", "servcieVies": "api/v2/services/vies", "crmAuth": "token", diff --git a/Wonky.Client/wwwroot/css/app.css b/Wonky.Client/wwwroot/css/app.css index db3ad235..fdc0765a 100644 --- a/Wonky.Client/wwwroot/css/app.css +++ b/Wonky.Client/wwwroot/css/app.css @@ -12,7 +12,7 @@ body { .workDate { font-variant: small-caps; } -/* visit / vat state classes */ +/* begin state elements */ .state { width: 16px; height: 16px; @@ -34,10 +34,13 @@ body { .the-draw { background-color: #9b02fc; } -.the-dead { - background-color: #262626; +.no-vat { + background-color: yellow; } -/* end visit state classes*/ +.the-dead { + background-color: black; +} +/* end state elements */ .btn.btn-edit { color: #030303; diff --git a/Wonky.Client/wwwroot/index.html b/Wonky.Client/wwwroot/index.html index 7b07ccb0..5f869b56 100644 --- a/Wonky.Client/wwwroot/index.html +++ b/Wonky.Client/wwwroot/index.html @@ -3,25 +3,25 @@ Inno Web CRM - - - - - - - - - - - - - + + + + + + + + + + + + +
- loading ... + loading ...