From 7342bfff776c974c85ae223b76f67e9f9b73c0e2 Mon Sep 17 00:00:00 2001 From: Frede Hundewadt Date: Sun, 15 Jan 2023 18:46:27 +0100 Subject: [PATCH] refactor linking to match usage (advisor, office, warehouse) --- Wonky.Client.sln.DotSettings | 3 + .../Components/ActivityListComponent.razor | 80 --------- .../AdvisorActivityListComponent.razor | 134 +++++++-------- ... => AdvisorActivityListComponent.razor.cs} | 2 +- ...zor => AdvisorCustomerListComponent.razor} | 2 +- ... => AdvisorCustomerListComponent.razor.cs} | 4 +- ...or => CustomerSearchColumnComponent.razor} | 0 ...=> CustomerSearchColumnComponent.razor.cs} | 2 +- ...or => CustomerSearchPhraseComponent.razor} | 0 ...=> CustomerSearchPhraseComponent.razor.cs} | 2 +- ...nent.razor => CustomerSortComponent.razor} | 0 ...azor.cs => CustomerSortComponent.razor.cs} | 2 +- .../Components/LandingComponentAdvisor.razor | 2 - ...min.razor => LandingComponentOffice.razor} | 6 +- ...zor.cs => LandingComponentOffice.razor.cs} | 2 +- .../OfficeActivityListComponent.razor | 92 ++++++++++ ... OfficeCountryCustomerListComponent.razor} | 2 +- ...ficeCountryCustomerListComponent.razor.cs} | 2 +- ... OfficeCountrySalesRepListComponent.razor} | 0 ...ficeCountrySalesRepListComponent.razor.cs} | 2 +- ...r => OfficeCountryUserListComponent.razor} | 0 ...> OfficeCountryUserListComponent.razor.cs} | 2 +- ...> OfficeReportActivityListComponent.razor} | 0 ...fficeReportActivityListComponent.razor.cs} | 4 +- ....razor => OfficeReportListComponent.razor} | 0 ....cs => OfficeReportListComponent.razor.cs} | 2 +- .../Components/QuoteListComponent.razor | 2 +- .../Components/TaskItemTableComponent.razor | 4 +- .../Components/TopbarNavigation.razor | 6 +- .../Components/WorkplaceListComponent.razor | 2 +- Wonky.Client/Helpers/Utils.cs | 20 ++- .../CountryCustomerRepository.cs | 1 - .../HttpRepository/CountryReportRepository.cs | 2 +- ...Page.razor => AdminSalesRepViewPage.razor} | 0 ...azor.cs => AdminSalesRepViewPage.razor.cs} | 10 +- Wonky.Client/Pages/AdvisorCatalogPage.razor | 4 +- .../Pages/AdvisorCreateActivityPage.razor | 14 +- .../Pages/AdvisorCreateActivityPage.razor.cs | 66 +++---- .../Pages/AdvisorCreateCustomerPage.razor | 3 +- .../Pages/AdvisorCreateCustomerPage.razor.cs | 4 +- .../AdvisorCustomerActivityListPage.razor | 8 +- .../AdvisorCustomerInventoryListPage.razor | 8 +- .../AdvisorCustomerInvoiceListPage.razor | 8 +- .../Pages/AdvisorCustomerListPage.razor | 14 +- .../Pages/AdvisorCustomerOrderViewPage.razor | 23 +-- .../AdvisorCustomerOrderViewPage.razor.cs | 2 +- .../Pages/AdvisorCustomerViewPage.razor | 10 +- .../Pages/AdvisorCustomerViewPage.razor.cs | 2 +- Wonky.Client/Pages/AdvisorQuoteListPage.razor | 4 +- .../Pages/AdvisorReportCreatePage.razor | 4 +- .../Pages/AdvisorReportCreatePage.razor.cs | 6 +- .../Pages/AdvisorReportListPage.razor | 4 +- .../Pages/AdvisorReportListPage.razor.cs | 2 +- .../Pages/AdvisorReportViewPage.razor | 6 +- .../Pages/AdvisorReportViewPage.razor.cs | 2 +- .../Pages/AdvisorTaskItemListCrmPage.razor | 6 +- .../Pages/AdvisorTaskItemViewCrmPage.razor | 4 +- .../Pages/AdvisorTodayActivityListPage.razor | 10 +- .../Pages/AdvisorViewActivityPage.razor | 7 +- .../Pages/AdvisorViewActivityPage.razor.cs | 2 +- .../AdvisorWorkplaceDocumentListPage.razor | 3 +- .../Pages/AdvisorWorkplaceListPage.razor | 6 +- .../Pages/AdvisorWorkplaceListPage.razor.cs | 4 +- .../Pages/AdvisorWorkplaceViewPage.razor | 46 ++--- .../Pages/AdvisorWorkplaceViewPage.razor.cs | 12 +- Wonky.Client/Pages/ErrorPage401.razor | 1 + Wonky.Client/Pages/ErrorPage404.razor | 1 + Wonky.Client/Pages/ErrorPage404.razor.cs | 2 +- Wonky.Client/Pages/ErrorPage500.razor | 1 + Wonky.Client/Pages/ErrorReportPage.razor | 1 + Wonky.Client/Pages/Index.razor | 8 +- Wonky.Client/Pages/InfoPage.razor | 4 +- Wonky.Client/Pages/Login.razor | 2 +- Wonky.Client/Pages/Login.razor.cs | 2 +- ...e.razor => OfficeCountryCatalogPage.razor} | 4 +- ...r.cs => OfficeCountryCatalogPage.razor.cs} | 2 +- ...zor => OfficeCountryCreateOrderPage.razor} | 86 +++++----- ... => OfficeCountryCreateOrderPage.razor.cs} | 148 ++++++++-------- ...or => OfficeCountryCustomerListPage.razor} | 12 +- ...=> OfficeCountryCustomerListPage.razor.cs} | 2 +- ...e.razor => OfficeCountryLandingPage.razor} | 4 +- ...r.cs => OfficeCountryLandingPage.razor.cs} | 2 +- ...or => OfficeCountryPrintCatalogPage.razor} | 6 +- ...=> OfficeCountryPrintCatalogPage.razor.cs} | 6 +- ...ficeCountrySalesRepCustomerListPage.razor} | 14 +- ...eCountrySalesRepCustomerListPage.razor.cs} | 7 +- .../Pages/OfficeCustomerOrderViewPage.razor | 161 ++++++++++++++++++ .../OfficeCustomerOrderViewPage.razor.cs | 136 +++++++++++++++ .../OfficeCustomerOrderViewPage.razor.css | 6 + ...tPage.razor => OfficeReportListPage.razor} | 5 +- ...razor.cs => OfficeReportListPage.razor.cs} | 2 +- ...wPage.razor => OfficeReportViewPage.razor} | 4 +- ...razor.cs => OfficeReportViewPage.razor.cs} | 4 +- ...age.razor => OfficeSalesRepListPage.razor} | 6 +- ...zor.cs => OfficeSalesRepListPage.razor.cs} | 5 +- Wonky.Client/Pages/PreferencesPage.razor | 4 +- Wonky.Client/Pages/PrintCatalogPage.razor | 2 +- Wonky.Client/Pages/PrintCatalogPage.razor.cs | 3 + Wonky.Client/Pages/PrintFrontPage.razor | 4 +- Wonky.Client/Pages/PrintOrderPage.razor | 2 +- .../Pages/WarehouseOrderListPage.razor | 2 +- .../Pages/WarehouseOrderViewPage.razor | 2 +- .../Shared/ConfirmWorkDateModal.razor | 2 +- Wonky.Client/Shared/ConfirmationModal.razor | 2 +- Wonky.Client/Shared/ContactModal.razor | 2 +- Wonky.Client/Shared/InformationModal.razor | 2 +- Wonky.Client/Shared/NavMenu.razor | 12 +- Wonky.Client/Shared/VatLookupDkModal.razor | 2 +- 108 files changed, 858 insertions(+), 515 deletions(-) delete mode 100644 Wonky.Client/Components/ActivityListComponent.razor rename Wonky.Client/Components/{ActivityListComponent.razor.cs => AdvisorActivityListComponent.razor.cs} (95%) rename Wonky.Client/Components/{AdvisorCompanyTableComponent.razor => AdvisorCustomerListComponent.razor} (97%) rename Wonky.Client/Components/{AdvisorCompanyTableComponent.razor.cs => AdvisorCustomerListComponent.razor.cs} (93%) rename Wonky.Client/Components/{CompanySearchColumnComponent.razor => CustomerSearchColumnComponent.razor} (100%) rename Wonky.Client/Components/{CompanySearchColumnComponent.razor.cs => CustomerSearchColumnComponent.razor.cs} (96%) rename Wonky.Client/Components/{CompanySearchPhraseComponent.razor => CustomerSearchPhraseComponent.razor} (100%) rename Wonky.Client/Components/{CompanySearchPhraseComponent.razor.cs => CustomerSearchPhraseComponent.razor.cs} (97%) rename Wonky.Client/Components/{CompanySortComponent.razor => CustomerSortComponent.razor} (100%) rename Wonky.Client/Components/{CompanySortComponent.razor.cs => CustomerSortComponent.razor.cs} (97%) rename Wonky.Client/Components/{LandingComponentAdmin.razor => LandingComponentOffice.razor} (95%) rename Wonky.Client/Components/{LandingComponentAdmin.razor.cs => LandingComponentOffice.razor.cs} (98%) create mode 100644 Wonky.Client/Components/OfficeActivityListComponent.razor rename Wonky.Client/Components/{CountryCustomerListComponent.razor => OfficeCountryCustomerListComponent.razor} (97%) rename Wonky.Client/Components/{CountryCustomerListComponent.razor.cs => OfficeCountryCustomerListComponent.razor.cs} (95%) rename Wonky.Client/Components/{CountrySalesRepListComponent.razor => OfficeCountrySalesRepListComponent.razor} (100%) rename Wonky.Client/Components/{CountrySalesRepListComponent.razor.cs => OfficeCountrySalesRepListComponent.razor.cs} (94%) rename Wonky.Client/Components/{CountryUserListComponent.razor => OfficeCountryUserListComponent.razor} (100%) rename Wonky.Client/Components/{CountryUserListComponent.razor.cs => OfficeCountryUserListComponent.razor.cs} (94%) rename Wonky.Client/Components/{ReportActivityTableOfficeComponent.razor => OfficeReportActivityListComponent.razor} (100%) rename Wonky.Client/Components/{ReportActivityTableOfficeComponent.razor.cs => OfficeReportActivityListComponent.razor.cs} (91%) rename Wonky.Client/Components/{ReportListOfficeComponent.razor => OfficeReportListComponent.razor} (100%) rename Wonky.Client/Components/{ReportListOfficeComponent.razor.cs => OfficeReportListComponent.razor.cs} (96%) rename Wonky.Client/Pages/{BackendAdminSalesRepViewPage.razor => AdminSalesRepViewPage.razor} (100%) rename Wonky.Client/Pages/{BackendAdminSalesRepViewPage.razor.cs => AdminSalesRepViewPage.razor.cs} (90%) rename Wonky.Client/Pages/{CountryCatalogPage.razor => OfficeCountryCatalogPage.razor} (94%) rename Wonky.Client/Pages/{CountryCatalogPage.razor.cs => OfficeCountryCatalogPage.razor.cs} (98%) rename Wonky.Client/Pages/{CountryCreateNewOrderPage.razor => OfficeCountryCreateOrderPage.razor} (84%) rename Wonky.Client/Pages/{CountryCreateNewOrderPage.razor.cs => OfficeCountryCreateOrderPage.razor.cs} (64%) rename Wonky.Client/Pages/{CountryCustomerListPage.razor => OfficeCountryCustomerListPage.razor} (81%) rename Wonky.Client/Pages/{CountryCustomerListPage.razor.cs => OfficeCountryCustomerListPage.razor.cs} (98%) rename Wonky.Client/Pages/{CountryLandingPage.razor => OfficeCountryLandingPage.razor} (97%) rename Wonky.Client/Pages/{CountryLandingPage.razor.cs => OfficeCountryLandingPage.razor.cs} (80%) rename Wonky.Client/Pages/{CountryPrintCatalogPage.razor => OfficeCountryPrintCatalogPage.razor} (83%) rename Wonky.Client/Pages/{CountryPrintCatalogPage.razor.cs => OfficeCountryPrintCatalogPage.razor.cs} (91%) rename Wonky.Client/Pages/{CountrySalesRepCustomerListPage.razor => OfficeCountrySalesRepCustomerListPage.razor} (78%) rename Wonky.Client/Pages/{CountrySalesRepCustomerListPage.razor.cs => OfficeCountrySalesRepCustomerListPage.razor.cs} (93%) create mode 100644 Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor create mode 100644 Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.cs create mode 100644 Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.css rename Wonky.Client/Pages/{AdminReportListPage.razor => OfficeReportListPage.razor} (86%) rename Wonky.Client/Pages/{AdminReportListPage.razor.cs => OfficeReportListPage.razor.cs} (98%) rename Wonky.Client/Pages/{AdminReportViewPage.razor => OfficeReportViewPage.razor} (95%) rename Wonky.Client/Pages/{AdminReportViewPage.razor.cs => OfficeReportViewPage.razor.cs} (97%) rename Wonky.Client/Pages/{AdminSalesRepListPage.razor => OfficeSalesRepListPage.razor} (86%) rename Wonky.Client/Pages/{AdminSalesRepListPage.razor.cs => OfficeSalesRepListPage.razor.cs} (83%) diff --git a/Wonky.Client.sln.DotSettings b/Wonky.Client.sln.DotSettings index 22a99637..95725125 100644 --- a/Wonky.Client.sln.DotSettings +++ b/Wonky.Client.sln.DotSettings @@ -2,9 +2,12 @@ True True True + True True True + True True + True True True True \ No newline at end of file diff --git a/Wonky.Client/Components/ActivityListComponent.razor b/Wonky.Client/Components/ActivityListComponent.razor deleted file mode 100644 index 833ebb8b..00000000 --- a/Wonky.Client/Components/ActivityListComponent.razor +++ /dev/null @@ -1,80 +0,0 @@ -@using Wonky.Client.Helpers -@* -// 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 (ActivityList.Any()) -{ - - - - - - - - - - - - - - - - - - @foreach (var activity in ActivityList) - { - - - - - - - - - - - - - - } - - - - - - - -
KundeBynavnDemoSalgNotesasBeløb
@activity.Company.Name@activity.Company.City@activity.Demo@activity.Sales@activity.OfficeNote@($"{activity.SasAmount:N2}")@(activity.StatusTypeEnum == "Quote" ? $"{0:N2}" : $"{activity.OrderAmount:N2}") - @if (activity.OurRef.Contains("T:")) - {} - - @if (activity.Express) - {} - - @if (activity.StatusTypeEnum == "Quote") - {} - - @if (activity.Lines.Any() && activity.StatusTypeEnum == "Order") - { - - } -
Total@ActivityList.Where(x => x.StatusTypeEnum == "Order").Sum(x => x.OrderAmount)
-} -else -{ -
Ingen data
-} \ No newline at end of file diff --git a/Wonky.Client/Components/AdvisorActivityListComponent.razor b/Wonky.Client/Components/AdvisorActivityListComponent.razor index 13ed7bfa..724cdd4a 100644 --- a/Wonky.Client/Components/AdvisorActivityListComponent.razor +++ b/Wonky.Client/Components/AdvisorActivityListComponent.razor @@ -1,3 +1,4 @@ +@using Wonky.Client.Helpers @* // Copyright (C) 2022 FCS Frede's Computer Services. // This program is free software: you can redistribute it and/or modify @@ -14,79 +15,66 @@ // along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] // *@ -@using Wonky.Entity.Views -@* Report activities *@ - - - - - - - - - - - - - - - - - - @foreach (var activity in Activities) - { - - - - - - - - - - - - +@if (ActivityList.Any()) +{ +
KundeBynavnDemoSalgNotesasBeløb - - - - - - - -
@activity.Company.Name@activity.Company.City@activity.Demo@activity.Sales@activity.OfficeNote@($"{activity.SasAmount:N2}")@(activity.StatusTypeEnum.Contains("Quote") ? $"{0:N2}" : $"{activity.OrderAmount:N2}") - @if (activity.OurRef.Contains("T:")) - { - - } - - @if (activity.Express) - { - - } - - @if (activity.StatusTypeEnum == "Quote") - { - - } - - -
+ + + + + + + + + + + + + - } - - - - - - - -
KundeBynavnDemoSalgNotesasBeløb
Total@Activities.Where(x => x.StatusTypeEnum != "Quote").Sum(x => x.OrderAmount)
- -@code { - - [Parameter] - public List Activities { get; set; } = new(); - + + + @foreach (var activity in ActivityList) + { + + @activity.Company.Name + @activity.Company.City + @activity.Demo + @activity.Sales + @activity.OfficeNote + @($"{activity.SasAmount:N2}") + @(activity.StatusTypeEnum == "Quote" ? $"{0:N2}" : $"{activity.OrderAmount:N2}") + + @if (activity.OurRef.Contains("T:")) + {} + + + @if (activity.Express) + {} + + + @if (activity.StatusTypeEnum == "Quote") + {} + + + @if (activity.Lines.Any() && activity.StatusTypeEnum == "Order") + { + + } + + + } + + + Total + @ActivityList.Where(x => x.StatusTypeEnum == "Order").Sum(x => x.OrderAmount) + + + + +} +else +{ +
Ingen data
} \ No newline at end of file diff --git a/Wonky.Client/Components/ActivityListComponent.razor.cs b/Wonky.Client/Components/AdvisorActivityListComponent.razor.cs similarity index 95% rename from Wonky.Client/Components/ActivityListComponent.razor.cs rename to Wonky.Client/Components/AdvisorActivityListComponent.razor.cs index 37969a3b..5598f708 100644 --- a/Wonky.Client/Components/ActivityListComponent.razor.cs +++ b/Wonky.Client/Components/AdvisorActivityListComponent.razor.cs @@ -18,7 +18,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class ActivityListComponent +public partial class AdvisorActivityListComponent { [Parameter] public List ActivityList { get; set; } = new(); [Inject] public NavigationManager Navigator { get; set; } diff --git a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor b/Wonky.Client/Components/AdvisorCustomerListComponent.razor similarity index 97% rename from Wonky.Client/Components/AdvisorCompanyTableComponent.razor rename to Wonky.Client/Components/AdvisorCustomerListComponent.razor index 378ac3ce..db093cce 100644 --- a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor +++ b/Wonky.Client/Components/AdvisorCustomerListComponent.razor @@ -58,7 +58,7 @@ @company.City - diff --git a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor.cs b/Wonky.Client/Components/AdvisorCustomerListComponent.razor.cs similarity index 93% rename from Wonky.Client/Components/AdvisorCompanyTableComponent.razor.cs rename to Wonky.Client/Components/AdvisorCustomerListComponent.razor.cs index dcd88100..5afc6009 100644 --- a/Wonky.Client/Components/AdvisorCompanyTableComponent.razor.cs +++ b/Wonky.Client/Components/AdvisorCustomerListComponent.razor.cs @@ -27,7 +27,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components { - public partial class AdvisorCompanyTableComponent + public partial class AdvisorCustomerListComponent { [Parameter] public List CompanyList { get; set; } = new(); [Parameter] public EventCallback OnDelete { get; set; } @@ -43,7 +43,7 @@ namespace Wonky.Client.Components private void ViewCustomer(string companyId) { - Navigator.NavigateTo($"/customers/{companyId}"); + Navigator.NavigateTo($"/advisor/customers/{companyId}"); } private void CallInformationModal(string info) diff --git a/Wonky.Client/Components/CompanySearchColumnComponent.razor b/Wonky.Client/Components/CustomerSearchColumnComponent.razor similarity index 100% rename from Wonky.Client/Components/CompanySearchColumnComponent.razor rename to Wonky.Client/Components/CustomerSearchColumnComponent.razor diff --git a/Wonky.Client/Components/CompanySearchColumnComponent.razor.cs b/Wonky.Client/Components/CustomerSearchColumnComponent.razor.cs similarity index 96% rename from Wonky.Client/Components/CompanySearchColumnComponent.razor.cs rename to Wonky.Client/Components/CustomerSearchColumnComponent.razor.cs index 3b4777bb..b0dc0298 100644 --- a/Wonky.Client/Components/CompanySearchColumnComponent.razor.cs +++ b/Wonky.Client/Components/CustomerSearchColumnComponent.razor.cs @@ -22,7 +22,7 @@ using Wonky.Client.Services; namespace Wonky.Client.Components; -public partial class CompanySearchColumnComponent : IDisposable +public partial class CustomerSearchColumnComponent : IDisposable { [Inject] public ILocalStorageService Storage { get; set; } [Inject] public UserProfileService ProfileService { get; set; } diff --git a/Wonky.Client/Components/CompanySearchPhraseComponent.razor b/Wonky.Client/Components/CustomerSearchPhraseComponent.razor similarity index 100% rename from Wonky.Client/Components/CompanySearchPhraseComponent.razor rename to Wonky.Client/Components/CustomerSearchPhraseComponent.razor diff --git a/Wonky.Client/Components/CompanySearchPhraseComponent.razor.cs b/Wonky.Client/Components/CustomerSearchPhraseComponent.razor.cs similarity index 97% rename from Wonky.Client/Components/CompanySearchPhraseComponent.razor.cs rename to Wonky.Client/Components/CustomerSearchPhraseComponent.razor.cs index aceec932..74036aca 100644 --- a/Wonky.Client/Components/CompanySearchPhraseComponent.razor.cs +++ b/Wonky.Client/Components/CustomerSearchPhraseComponent.razor.cs @@ -20,7 +20,7 @@ using Timer = System.Timers.Timer; namespace Wonky.Client.Components { - public partial class CompanySearchPhraseComponent + public partial class CustomerSearchPhraseComponent { private Timer InputTimer { get; set; } = new(); private string SearchTerm { get; set; } = ""; diff --git a/Wonky.Client/Components/CompanySortComponent.razor b/Wonky.Client/Components/CustomerSortComponent.razor similarity index 100% rename from Wonky.Client/Components/CompanySortComponent.razor rename to Wonky.Client/Components/CustomerSortComponent.razor diff --git a/Wonky.Client/Components/CompanySortComponent.razor.cs b/Wonky.Client/Components/CustomerSortComponent.razor.cs similarity index 97% rename from Wonky.Client/Components/CompanySortComponent.razor.cs rename to Wonky.Client/Components/CustomerSortComponent.razor.cs index 045ce0d7..c3e48c35 100644 --- a/Wonky.Client/Components/CompanySortComponent.razor.cs +++ b/Wonky.Client/Components/CustomerSortComponent.razor.cs @@ -21,7 +21,7 @@ using Wonky.Client.Services; namespace Wonky.Client.Components { - public partial class CompanySortComponent : IDisposable + public partial class CustomerSortComponent : IDisposable { [Inject] public ILocalStorageService Storage { get; set; } [Inject] public UserProfileService ProfileService { get; set; } diff --git a/Wonky.Client/Components/LandingComponentAdvisor.razor b/Wonky.Client/Components/LandingComponentAdvisor.razor index 0b238fc5..a97d1535 100644 --- a/Wonky.Client/Components/LandingComponentAdvisor.razor +++ b/Wonky.Client/Components/LandingComponentAdvisor.razor @@ -18,8 +18,6 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components -Innotec Rådgiver -
diff --git a/Wonky.Client/Components/LandingComponentAdmin.razor b/Wonky.Client/Components/LandingComponentOffice.razor similarity index 95% rename from Wonky.Client/Components/LandingComponentAdmin.razor rename to Wonky.Client/Components/LandingComponentOffice.razor index c7d9ef7e..c0c46091 100644 --- a/Wonky.Client/Components/LandingComponentAdmin.razor +++ b/Wonky.Client/Components/LandingComponentOffice.razor @@ -24,7 +24,7 @@
Danmark
- + Sælgere @@ -45,7 +45,7 @@
Norge
- + Sælgere @@ -66,7 +66,7 @@
Sverige
- + Sælgere diff --git a/Wonky.Client/Components/LandingComponentAdmin.razor.cs b/Wonky.Client/Components/LandingComponentOffice.razor.cs similarity index 98% rename from Wonky.Client/Components/LandingComponentAdmin.razor.cs rename to Wonky.Client/Components/LandingComponentOffice.razor.cs index ecc05952..f91b6f75 100644 --- a/Wonky.Client/Components/LandingComponentAdmin.razor.cs +++ b/Wonky.Client/Components/LandingComponentOffice.razor.cs @@ -30,7 +30,7 @@ using Wonky.Entity.Models; using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class LandingComponentAdmin +public partial class LandingComponentOffice { [Inject] public UserProfileService ProfileService { get; set; } diff --git a/Wonky.Client/Components/OfficeActivityListComponent.razor b/Wonky.Client/Components/OfficeActivityListComponent.razor new file mode 100644 index 00000000..13ed7bfa --- /dev/null +++ b/Wonky.Client/Components/OfficeActivityListComponent.razor @@ -0,0 +1,92 @@ +@* +// Copyright (C) 2022 FCS Frede's Computer Services. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] +// +*@ +@using Wonky.Entity.Views + +@* Report activities *@ + + + + + + + + + + + + + + + + + + @foreach (var activity in Activities) + { + + + + + + + + + + + + + + } + + + + + + + +
KundeBynavnDemoSalgNotesasBeløb + + + + + + + +
@activity.Company.Name@activity.Company.City@activity.Demo@activity.Sales@activity.OfficeNote@($"{activity.SasAmount:N2}")@(activity.StatusTypeEnum.Contains("Quote") ? $"{0:N2}" : $"{activity.OrderAmount:N2}") + @if (activity.OurRef.Contains("T:")) + { + + } + + @if (activity.Express) + { + + } + + @if (activity.StatusTypeEnum == "Quote") + { + + } + + +
Total@Activities.Where(x => x.StatusTypeEnum != "Quote").Sum(x => x.OrderAmount)
+ +@code { + + [Parameter] + public List Activities { get; set; } = new(); + +} \ No newline at end of file diff --git a/Wonky.Client/Components/CountryCustomerListComponent.razor b/Wonky.Client/Components/OfficeCountryCustomerListComponent.razor similarity index 97% rename from Wonky.Client/Components/CountryCustomerListComponent.razor rename to Wonky.Client/Components/OfficeCountryCustomerListComponent.razor index f928c6c4..1dc3dc4c 100644 --- a/Wonky.Client/Components/CountryCustomerListComponent.razor +++ b/Wonky.Client/Components/OfficeCountryCustomerListComponent.razor @@ -42,7 +42,7 @@
@foreach (var company in CompanyList) { - +
@company.SalesRep diff --git a/Wonky.Client/Components/CountryCustomerListComponent.razor.cs b/Wonky.Client/Components/OfficeCountryCustomerListComponent.razor.cs similarity index 95% rename from Wonky.Client/Components/CountryCustomerListComponent.razor.cs rename to Wonky.Client/Components/OfficeCountryCustomerListComponent.razor.cs index 627ecbc9..aa8efc17 100644 --- a/Wonky.Client/Components/CountryCustomerListComponent.razor.cs +++ b/Wonky.Client/Components/OfficeCountryCustomerListComponent.razor.cs @@ -24,7 +24,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components { - public partial class CountryCustomerListComponent + public partial class OfficeCountryCustomerListComponent { [Parameter] public List CompanyList { get; set; } = new(); [Parameter] public string CountryCode { get; set; } = ""; diff --git a/Wonky.Client/Components/CountrySalesRepListComponent.razor b/Wonky.Client/Components/OfficeCountrySalesRepListComponent.razor similarity index 100% rename from Wonky.Client/Components/CountrySalesRepListComponent.razor rename to Wonky.Client/Components/OfficeCountrySalesRepListComponent.razor diff --git a/Wonky.Client/Components/CountrySalesRepListComponent.razor.cs b/Wonky.Client/Components/OfficeCountrySalesRepListComponent.razor.cs similarity index 94% rename from Wonky.Client/Components/CountrySalesRepListComponent.razor.cs rename to Wonky.Client/Components/OfficeCountrySalesRepListComponent.razor.cs index c9048872..8ed8f858 100644 --- a/Wonky.Client/Components/CountrySalesRepListComponent.razor.cs +++ b/Wonky.Client/Components/OfficeCountrySalesRepListComponent.razor.cs @@ -19,7 +19,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class CountrySalesRepListComponent +public partial class OfficeCountrySalesRepListComponent { [Parameter] public List UserList { get; set; } = new(); } \ No newline at end of file diff --git a/Wonky.Client/Components/CountryUserListComponent.razor b/Wonky.Client/Components/OfficeCountryUserListComponent.razor similarity index 100% rename from Wonky.Client/Components/CountryUserListComponent.razor rename to Wonky.Client/Components/OfficeCountryUserListComponent.razor diff --git a/Wonky.Client/Components/CountryUserListComponent.razor.cs b/Wonky.Client/Components/OfficeCountryUserListComponent.razor.cs similarity index 94% rename from Wonky.Client/Components/CountryUserListComponent.razor.cs rename to Wonky.Client/Components/OfficeCountryUserListComponent.razor.cs index ad2b5be5..1d098669 100644 --- a/Wonky.Client/Components/CountryUserListComponent.razor.cs +++ b/Wonky.Client/Components/OfficeCountryUserListComponent.razor.cs @@ -18,7 +18,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class CountryUserListComponent +public partial class OfficeCountryUserListComponent { [Parameter] public List UserList { get; set; } = new(); } \ No newline at end of file diff --git a/Wonky.Client/Components/ReportActivityTableOfficeComponent.razor b/Wonky.Client/Components/OfficeReportActivityListComponent.razor similarity index 100% rename from Wonky.Client/Components/ReportActivityTableOfficeComponent.razor rename to Wonky.Client/Components/OfficeReportActivityListComponent.razor diff --git a/Wonky.Client/Components/ReportActivityTableOfficeComponent.razor.cs b/Wonky.Client/Components/OfficeReportActivityListComponent.razor.cs similarity index 91% rename from Wonky.Client/Components/ReportActivityTableOfficeComponent.razor.cs rename to Wonky.Client/Components/OfficeReportActivityListComponent.razor.cs index 2246eb19..c8352bbf 100644 --- a/Wonky.Client/Components/ReportActivityTableOfficeComponent.razor.cs +++ b/Wonky.Client/Components/OfficeReportActivityListComponent.razor.cs @@ -18,7 +18,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class ReportActivityTableOfficeComponent +public partial class OfficeReportActivityListComponent { [Parameter] public List ActivityList { get; set; } = new(); [Inject] public NavigationManager Navigator { get; set; } @@ -38,6 +38,6 @@ public partial class ReportActivityTableOfficeComponent private void ShowOrder(string companyId, string orderId) { - Navigator.NavigateTo($"office/customers/{companyId}/orders/{orderId}"); + Navigator.NavigateTo($"/office/customers/{companyId}/orders/{orderId}"); } } \ No newline at end of file diff --git a/Wonky.Client/Components/ReportListOfficeComponent.razor b/Wonky.Client/Components/OfficeReportListComponent.razor similarity index 100% rename from Wonky.Client/Components/ReportListOfficeComponent.razor rename to Wonky.Client/Components/OfficeReportListComponent.razor diff --git a/Wonky.Client/Components/ReportListOfficeComponent.razor.cs b/Wonky.Client/Components/OfficeReportListComponent.razor.cs similarity index 96% rename from Wonky.Client/Components/ReportListOfficeComponent.razor.cs rename to Wonky.Client/Components/OfficeReportListComponent.razor.cs index 61cb0c30..463369d9 100644 --- a/Wonky.Client/Components/ReportListOfficeComponent.razor.cs +++ b/Wonky.Client/Components/OfficeReportListComponent.razor.cs @@ -18,7 +18,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class ReportListOfficeComponent +public partial class OfficeReportListComponent { [Parameter] public List ReportList { get; set; } = new(); [Parameter] public string UserId { get; set; } = ""; diff --git a/Wonky.Client/Components/QuoteListComponent.razor b/Wonky.Client/Components/QuoteListComponent.razor index c07e912e..b1a5d3a6 100644 --- a/Wonky.Client/Components/QuoteListComponent.razor +++ b/Wonky.Client/Components/QuoteListComponent.razor @@ -64,7 +64,7 @@
@quote.ESalesNumber + href="/advisor/customers/@quote.Company.CompanyId/quotes/@quote.ActivityId">@quote.ESalesNumber
@if (!string.IsNullOrWhiteSpace(quote.OfficeNote)) { diff --git a/Wonky.Client/Components/TaskItemTableComponent.razor b/Wonky.Client/Components/TaskItemTableComponent.razor index 43068588..7c3b2609 100644 --- a/Wonky.Client/Components/TaskItemTableComponent.razor +++ b/Wonky.Client/Components/TaskItemTableComponent.razor @@ -47,7 +47,7 @@ - + @@ -64,7 +64,7 @@ @if (task.TaskTypeEnum is "Recall") { - + } diff --git a/Wonky.Client/Components/TopbarNavigation.razor b/Wonky.Client/Components/TopbarNavigation.razor index 98f967d5..d67b2685 100644 --- a/Wonky.Client/Components/TopbarNavigation.razor +++ b/Wonky.Client/Components/TopbarNavigation.razor @@ -19,9 +19,9 @@
- - - + + +
\ No newline at end of file diff --git a/Wonky.Client/Components/WorkplaceListComponent.razor b/Wonky.Client/Components/WorkplaceListComponent.razor index 1c86ad95..04aedadf 100644 --- a/Wonky.Client/Components/WorkplaceListComponent.razor +++ b/Wonky.Client/Components/WorkplaceListComponent.razor @@ -14,7 +14,7 @@
@foreach (var workplace in Workplaces) { - +
@workplace.Name diff --git a/Wonky.Client/Helpers/Utils.cs b/Wonky.Client/Helpers/Utils.cs index 74fd9cdb..0c2792b5 100644 --- a/Wonky.Client/Helpers/Utils.cs +++ b/Wonky.Client/Helpers/Utils.cs @@ -18,9 +18,27 @@ using System.Net.Mail; using Wonky.Entity.DTO; namespace Wonky.Client.Helpers; - +/// +/// Utilities +/// public static class Utils { + /// + /// return Country Name from countryCode + /// + /// + /// + public static string CountryName(string countryCode) + { + return countryCode.ToLower() switch + { + "dk" => "Danmark", + "no" => "Norge", + "se" => "Sverige", + _ => "" + }; + } + /// /// Helper to parse querystring /// diff --git a/Wonky.Client/HttpRepository/CountryCustomerRepository.cs b/Wonky.Client/HttpRepository/CountryCustomerRepository.cs index 5669600f..8cc6b9b8 100644 --- a/Wonky.Client/HttpRepository/CountryCustomerRepository.cs +++ b/Wonky.Client/HttpRepository/CountryCustomerRepository.cs @@ -145,5 +145,4 @@ public class CountryCustomerRepository : ICountryCustomerRepository Console.WriteLine(content); return response.IsSuccessStatusCode; } - } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/CountryReportRepository.cs b/Wonky.Client/HttpRepository/CountryReportRepository.cs index 38b67849..79e2192f 100644 --- a/Wonky.Client/HttpRepository/CountryReportRepository.cs +++ b/Wonky.Client/HttpRepository/CountryReportRepository.cs @@ -55,7 +55,7 @@ public class CountryReportRepository : ICountryReportRepository public async Task ReportExist(string salesRepId, string workDate) { var result = await _client.GetFromJsonAsync( - $"{_apiConfig.OfficeReports}/exist/{workDate}"); + $"{_apiConfig.OfficeReports}/{salesRepId}/{workDate}/exist"); return result.ReportClosed; } /// diff --git a/Wonky.Client/Pages/BackendAdminSalesRepViewPage.razor b/Wonky.Client/Pages/AdminSalesRepViewPage.razor similarity index 100% rename from Wonky.Client/Pages/BackendAdminSalesRepViewPage.razor rename to Wonky.Client/Pages/AdminSalesRepViewPage.razor diff --git a/Wonky.Client/Pages/BackendAdminSalesRepViewPage.razor.cs b/Wonky.Client/Pages/AdminSalesRepViewPage.razor.cs similarity index 90% rename from Wonky.Client/Pages/BackendAdminSalesRepViewPage.razor.cs rename to Wonky.Client/Pages/AdminSalesRepViewPage.razor.cs index bd2c117d..98e8e361 100644 --- a/Wonky.Client/Pages/BackendAdminSalesRepViewPage.razor.cs +++ b/Wonky.Client/Pages/AdminSalesRepViewPage.razor.cs @@ -26,13 +26,13 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class BackendAdminSalesRepViewPage : IDisposable +public partial class AdminSalesRepViewPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = ""; [Inject] public HttpInterceptorService _interceptor { get; set; } [Inject] public ISystemUserRepository SystemUserRepo { get; set; } - [Inject] public ILogger _logger { get; set; } + [Inject] public ILogger _logger { get; set; } [Inject] public NavigationManager _navigator { get; set; } [Inject] public IToastService _toast { get; set; } private WebUserInfoView UserInfo { get; set; } = new(); @@ -77,6 +77,8 @@ public partial class BackendAdminSalesRepViewPage : IDisposable _toast.ShowInfo("Sender data til server ..."); await SystemUserRepo.UpdateAdvisor(UserId, _updateInfo); Working = false; + _toast.ShowInfo("Sælger er opdateret ..."); + // _navigator.NavigateTo($"/office/users/advisors/{CountryCode}/{UserId}"); } private void PwHandleFieldChanged(object sender, FieldChangedEventArgs e) @@ -103,11 +105,13 @@ public partial class BackendAdminSalesRepViewPage : IDisposable if (Working) return; Working = true; + _toast.ShowInfo("Nulstiller adgangskode."); await SystemUserRepo.ResetUserPassword(UserId, _passwords.NewPassword, _passwords.ConfirmPassword); - _toast.ShowInfo("Password er nulstillet."); _passwords.NewPassword = ""; _passwords.ConfirmPassword = ""; Working = false; + _toast.ShowInfo("Adgangskode er nulstillet."); + // _navigator.NavigateTo($"/office/users/advisors/{CountryCode}/{UserId}"); } public void Dispose() { diff --git a/Wonky.Client/Pages/AdvisorCatalogPage.razor b/Wonky.Client/Pages/AdvisorCatalogPage.razor index 6bd639cc..2b67b483 100644 --- a/Wonky.Client/Pages/AdvisorCatalogPage.razor +++ b/Wonky.Client/Pages/AdvisorCatalogPage.razor @@ -18,8 +18,8 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Advisor")] -@page "/price-catalog" - +@page "/advisor/price-catalog" +Innotec Produkt Katalog
diff --git a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor b/Wonky.Client/Pages/AdvisorCreateActivityPage.razor index 2ac2a359..999734c4 100644 --- a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor +++ b/Wonky.Client/Pages/AdvisorCreateActivityPage.razor @@ -18,18 +18,20 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components @attribute [Authorize(Roles = "Advisor")] -@page "/customers/{CompanyId}/activities/new" +@page "/advisor/customers/{CompanyId}/activities/new" + +Rådgiver Opret Aktivetet for @Company.Name
- +
-@if (!string.IsNullOrWhiteSpace(_company.Blocked)) +@if (!string.IsNullOrWhiteSpace(Company.Blocked)) {
-

Ring til kontoret. Denne konto er spærret med kode '@_company.Blocked'

+

Ring til kontoret. Denne konto er spærret med kode '@Company.Blocked'

}
@@ -67,7 +69,7 @@ else
- @if (!string.IsNullOrEmpty(Activity.VatNumber) && !string.IsNullOrWhiteSpace(Activity.Address1) && _company.HasFolded == 0) + @if (!string.IsNullOrEmpty(Activity.VatNumber) && !string.IsNullOrWhiteSpace(Activity.Address1) && Company.HasFolded == 0) { @if (DraftProvider.Draft.DraftType == "order") { @@ -314,7 +316,7 @@ else
diff --git a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor.cs b/Wonky.Client/Pages/AdvisorCreateActivityPage.razor.cs index 8ffd4d04..abf2b7cc 100644 --- a/Wonky.Client/Pages/AdvisorCreateActivityPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCreateActivityPage.razor.cs @@ -52,7 +52,7 @@ public partial class AdvisorCreateActivityPage : IDisposable private SalesItemView SelectedItem { get; set; } = new(); private UserPref UserPrefs { get; set; } = new(); private ActivityDto Activity { get; set; } = new(); - private CompanyDto _company = new(); + private CompanyDto Company = new(); private EditContext? ActivityContext { get; set; } private bool PoFormInvalid { get; set; } = true; private bool ShowItem { get; set; } @@ -95,42 +95,42 @@ public partial class AdvisorCreateActivityPage : IDisposable // User Info ThisUserInfo = await Storage.GetItemAsync("_xu"); // Fetch Customer from http - _company = await CompanyRepo.GetCompanyById(CompanyId); - if (_company.HasFolded == 1) + Company = await CompanyRepo.GetCompanyById(CompanyId); + if (Company.HasFolded == 1) // Company has shutdown activities Activity.OrderMessage = "BEMÆRK: CVR nummer er ophørt."; // variable to validate if customer needs phone number update - OldPhone = _company.Phone; - if (string.IsNullOrWhiteSpace(_company.Phone) - && !string.IsNullOrWhiteSpace(_company.Account) - && _company.Account != "NY" && _company.Account.Length > 7) + OldPhone = Company.Phone; + if (string.IsNullOrWhiteSpace(Company.Phone) + && !string.IsNullOrWhiteSpace(Company.Account) + && Company.Account != "NY" && Company.Account.Length > 7) { - _company.Phone = _company.Account[..8]; + Company.Phone = Company.Account[..8]; } // Populate base activity information - Activity.BcId = _company.BcId; + Activity.BcId = Company.BcId; Activity.ActivityStatusEnum = "noSale"; - Activity.VisitTypeEnum = _company.Account is "" or "NY" ? "new" : "recall"; - Activity.CompanyId = _company.CompanyId; + Activity.VisitTypeEnum = Company.Account is "" or "NY" ? "new" : "recall"; + Activity.CompanyId = Company.CompanyId; Activity.SalesRepId = ThisUserInfo.Id; Activity.SalesRep = ThisUserInfo.Advisor; Activity.CountryCode = ThisUserInfo.CountryCode; - Activity.Account = _company.Account; - Activity.VatNumber = _company.VatNumber; - Activity.Email = _company.Email; - Activity.Phone = _company.Phone; - Activity.Mobile = _company.Mobile; - Activity.Name = _company.Name; - Activity.Address1 = _company.Address1; - Activity.Address2 = _company.Address2; - Activity.ZipCode = _company.ZipCode; - Activity.City = _company.City; - Activity.DlvName = _company.Name; - Activity.DlvAddress1 = _company.Address1; - Activity.DlvAddress2 = _company.Address2; - Activity.DlvZipCode = _company.ZipCode; - Activity.DlvCity = _company.City; + Activity.Account = Company.Account; + Activity.VatNumber = Company.VatNumber; + Activity.Email = Company.Email; + Activity.Phone = Company.Phone; + Activity.Mobile = Company.Mobile; + Activity.Name = Company.Name; + Activity.Address1 = Company.Address1; + Activity.Address2 = Company.Address2; + Activity.ZipCode = Company.ZipCode; + Activity.City = Company.City; + Activity.DlvName = Company.Name; + Activity.DlvAddress1 = Company.Address1; + Activity.DlvAddress2 = Company.Address2; + Activity.DlvZipCode = Company.ZipCode; + Activity.DlvCity = Company.City; // Initialize date variable SelectedDate = string.IsNullOrWhiteSpace(UserPrefs.WorkDate) ? DateTime.Now : DateTime.Parse(UserPrefs.WorkDate); // raise flag if report is closed @@ -157,8 +157,8 @@ public partial class AdvisorCreateActivityPage : IDisposable private async Task CallConfirmProductCheckModel() { // check if new account - if (string.IsNullOrWhiteSpace(_company.Account) - || _company.Account.ToLower() == "ny" + if (string.IsNullOrWhiteSpace(Company.Account) + || Company.Account.ToLower() == "ny" || Activity.ActivityStatusEnum.ToLower() == "quote") { // proceed to create activity - as there is no product check to be done @@ -182,7 +182,7 @@ public partial class AdvisorCreateActivityPage : IDisposable // product inventory has not been updated // send rpc call to sync ERP to CRM Toast.ShowInfo("Vent mens data synkroniseres ...", "ERP til CRM ..."); - var ts = await HistoryRepo.InvoiceErpToCrmRpc(CompanyId, _company.HistorySync); + var ts = await HistoryRepo.InvoiceErpToCrmRpc(CompanyId, Company.HistorySync); while (string.IsNullOrWhiteSpace(ts)) await Task.Delay(500); // save pDate @@ -308,7 +308,7 @@ public partial class AdvisorCreateActivityPage : IDisposable Toast.ShowError("Ved bestilling skal der være en eller flere linjer i kladden."); return; // phone number is required if first time customer - case "order" when _company.Account is "NY" or "" && string.IsNullOrWhiteSpace(Activity.Phone): + case "order" when Company.Account is "NY" or "" && string.IsNullOrWhiteSpace(Activity.Phone): Toast.ShowError("Ved bestilling til ny kunde skal telefon nummer angives."); return; // verify email address is a valid address @@ -324,8 +324,8 @@ public partial class AdvisorCreateActivityPage : IDisposable // check if phone number need to be updated if (OldPhone != Activity.Phone) { - _company.Phone = Activity.Phone; - await CompanyRepo.UpdateErpData(_company.CompanyId, _company); + Company.Phone = Activity.Phone; + await CompanyRepo.UpdateErpData(Company.CompanyId, Company); } // begin assembling activity Activity.ActivityDate = $"{SelectedDate:yyyy-MM-dd}"; @@ -370,7 +370,7 @@ public partial class AdvisorCreateActivityPage : IDisposable Toast.ShowSuccess($"{result.Message}", DraftProvider.Draft.Items.Count == 0 ? "Besøg er oprettet" : "Bestilling/Tilbud er oprettet"); await DeleteDraft(); - Navigator.NavigateTo($"/customers"); + Navigator.NavigateTo($"/advisor/customers"); return; } // lower working flag diff --git a/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor b/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor index fbd4df92..6bf0de0b 100644 --- a/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor +++ b/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor @@ -15,12 +15,13 @@ // *@ -@page "/customers/new" +@page "/advisor/customers/new" @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components @using System.Xml @attribute [Authorize(Roles = "Advisor")] +Rådgiver Opret Kunde

Opret kunde

diff --git a/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor.cs b/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor.cs index 9f116c88..34a65b36 100644 --- a/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCreateCustomerPage.razor.cs @@ -136,7 +136,7 @@ namespace Wonky.Client.Pages /// private void SelectCompanyCallback(VirkRegInfo regInfo) { - Logger.LogDebug($"CrmCompanyView => SelectCompanyCallback => {JsonSerializer.Serialize(regInfo)}"); + Logger.LogDebug("CrmCompanyView => SelectCompanyCallback => {}", JsonSerializer.Serialize(regInfo)); // this can be removed in favor of the new data returned from updating the VatNumber RegState = regInfo.States[0].State.ToLower() == "normal" ? "the-good" : "the-dead"; @@ -177,7 +177,7 @@ namespace Wonky.Client.Pages if (!string.IsNullOrWhiteSpace(newId)) { Toaster.ShowSuccess($"'{Company.Name}' er oprettet i CRM."); - Navigator.NavigateTo($"/customers/{newId}"); + Navigator.NavigateTo($"/advisor/customers/{newId}"); } else { diff --git a/Wonky.Client/Pages/AdvisorCustomerActivityListPage.razor b/Wonky.Client/Pages/AdvisorCustomerActivityListPage.razor index 1d54ce4b..3b8434bc 100644 --- a/Wonky.Client/Pages/AdvisorCustomerActivityListPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerActivityListPage.razor @@ -18,7 +18,9 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Advisor")] -@page "/customers/{CompanyId}/activities" +@page "/advisor/customers/{CompanyId}/activities" + +Rådgiver Aktiviteter for @Company.Name @if (!string.IsNullOrWhiteSpace(Company.Name)) { @@ -27,10 +29,10 @@

@Company.Name

diff --git a/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor b/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor index f8584e60..a372f041 100644 --- a/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerInventoryListPage.razor @@ -17,18 +17,18 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@page "/customers/{CompanyId}/h/i" +@page "/advisor/customers/{CompanyId}/h/i" @attribute [Authorize(Roles = "Advisor")] - +Produkt oversigt for @Company.Name diff --git a/Wonky.Client/Pages/AdvisorCustomerInvoiceListPage.razor b/Wonky.Client/Pages/AdvisorCustomerInvoiceListPage.razor index 879724c7..efd48402 100644 --- a/Wonky.Client/Pages/AdvisorCustomerInvoiceListPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerInvoiceListPage.razor @@ -16,9 +16,9 @@ *@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@page "/customers/{CompanyId}/invoices" +@page "/advisor/customers/{CompanyId}/invoices" @attribute [Authorize(Roles = "Advisor")] - +Faktura Oversigt for @Company.Name @if (!string.IsNullOrWhiteSpace(Company.Name)) {
@@ -26,10 +26,10 @@

@Company.Name

diff --git a/Wonky.Client/Pages/AdvisorCustomerListPage.razor b/Wonky.Client/Pages/AdvisorCustomerListPage.razor index 6cd8f5fe..669bb27b 100644 --- a/Wonky.Client/Pages/AdvisorCustomerListPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerListPage.razor @@ -17,19 +17,19 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@page "/customers" +@page "/advisor/customers" @attribute [Authorize(Roles = "Advisor")] - +Kunde oversigt
- +
- +
- +
@@ -44,12 +44,12 @@
- + @if (Working) { diff --git a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor b/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor index 3a96a0d4..f464d628 100644 --- a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor @@ -17,9 +17,9 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components -@attribute [Authorize(Roles = "Admin,Advisor,Warehouse")] -@page "/office/customers/{CompanyId}/orders/{OrderId}" - +@attribute [Authorize(Roles = "Advisor")] +@page "/advisor/customers/{CompanyId}/orders/{OrderId}" +@_reportItem.ESalesNumber - @_reportItem.Company.Name @@ -29,23 +29,6 @@
- @if (_reportItem.ProcessStatusEnum == "None") - { - - -
-
-
- -
-
- -
-
-
-
-
- } }

@_reportItem.Company.Name

diff --git a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.cs index f8ee5031..4c1bbd00 100644 --- a/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCustomerOrderViewPage.razor.cs @@ -39,7 +39,7 @@ public partial class AdvisorCustomerOrderViewPage : IDisposable [Inject] public ISystemSendMailService MailService { get; set; } [Inject] public ILocalStorageService Storage { get; set; } [Inject] public ISystemUserRepository SystemUserRepo { get; set; } - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public IToastService Toast { get; set; } private ReportItemView _reportItem { get; set; } = new(); private bool _isNotified { get; set; } diff --git a/Wonky.Client/Pages/AdvisorCustomerViewPage.razor b/Wonky.Client/Pages/AdvisorCustomerViewPage.razor index 3d2c2909..67a89bf4 100644 --- a/Wonky.Client/Pages/AdvisorCustomerViewPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerViewPage.razor @@ -19,8 +19,8 @@ @using Microsoft.AspNetCore.Components @using Wonky.Client.Components @attribute [Authorize(Roles = "Advisor")] -@page "/customers/{CompanyId}" - +@page "/advisor/customers/{CompanyId}" +Kundekort for @Company.Name @if (!string.IsNullOrWhiteSpace(Company.Account)) { @@ -128,13 +128,13 @@ @* activity buttons *@
Aftaler og Tilbud - Oversigt

Aftaler og Tilbud

diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor b/Wonky.Client/Pages/AdvisorReportCreatePage.razor index 22fbe885..946913dc 100644 --- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor +++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor @@ -19,7 +19,9 @@ @using Wonky.Client.Components @using Wonky.Entity.Views @attribute [Authorize(Roles = "Advisor")] -@page "/sales-reports/new" +@page "/advisor/sales-reports/new" + +Opret Dagsrapport for @_workDate @* report header *@
diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs index db488281..7c16c1fb 100644 --- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs @@ -70,7 +70,7 @@ public partial class AdvisorReportCreatePage : IDisposable _workDate = DateTime.Parse(Prefs.WorkDate); if(await AdvisorReportRepo.ReportExist(Prefs.WorkDate)) - Navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}"); + Navigator.NavigateTo($"/advisor/sales-reports/view/{_workDate:yyyy-MM-dd}"); BeginLeave = _workDate; EndLeave = _workDate; @@ -137,7 +137,7 @@ public partial class AdvisorReportCreatePage : IDisposable await ProfileService.SetKmMorning(0); // reset date confirmed await ProfileService.SetDateConfirmed(false); - Navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}"); + Navigator.NavigateTo($"/advisor/sales-reports/view/{_workDate:yyyy-MM-dd}"); } /// /// Submit report @@ -252,7 +252,7 @@ public partial class AdvisorReportCreatePage : IDisposable var data = await AdvisorReportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}"); if(data.ReportClosed) - Navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}"); + Navigator.NavigateTo($"/advisor/sales-reports/view/{_workDate:yyyy-MM-dd}"); Report.Figures = data.ReportData; InitialValues = data.ReportData; diff --git a/Wonky.Client/Pages/AdvisorReportListPage.razor b/Wonky.Client/Pages/AdvisorReportListPage.razor index 4dcf398a..64bc5bf0 100644 --- a/Wonky.Client/Pages/AdvisorReportListPage.razor +++ b/Wonky.Client/Pages/AdvisorReportListPage.razor @@ -18,8 +18,8 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Advisor")] -@page "/sales-reports" - +@page "/advisor/sales-reports" +Rapport Arkiv

Rapport Arkiv

diff --git a/Wonky.Client/Pages/AdvisorReportListPage.razor.cs b/Wonky.Client/Pages/AdvisorReportListPage.razor.cs index 9288e255..39ab3422 100644 --- a/Wonky.Client/Pages/AdvisorReportListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportListPage.razor.cs @@ -49,7 +49,7 @@ public partial class AdvisorReportListPage : IDisposable private void ShowThisReport(string reportDate) { Logger.LogDebug("CrmReportListPage => ShowThisReport <= {}", reportDate); - Navigator.NavigateTo($"/sales-reports/view/{reportDate}"); + Navigator.NavigateTo($"/advisor/sales-reports/view/{reportDate}"); } public void Dispose() diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor b/Wonky.Client/Pages/AdvisorReportViewPage.razor index bc7d335a..80f38180 100644 --- a/Wonky.Client/Pages/AdvisorReportViewPage.razor +++ b/Wonky.Client/Pages/AdvisorReportViewPage.razor @@ -19,8 +19,8 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Models @attribute [Authorize(Roles = "Advisor,Admin")] -@page "/sales-reports/view/{ReportDate}" - +@page "/advisor/sales-reports/view/{ReportDate}" +@Report.ReportData.Name
@@ -51,7 +51,7 @@
- + } else diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs b/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs index b1e91957..639d9ec1 100644 --- a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs @@ -85,7 +85,7 @@ public partial class AdvisorReportViewPage : IDisposable } // ensure the browser address bar contains the correct link - Navigator.NavigateTo($"/sales-reports/view/{workDate}", false, true); + Navigator.NavigateTo($"/advisor/sales-reports/view/{workDate}", false, true); // return if we are already at it if (Working) diff --git a/Wonky.Client/Pages/AdvisorTaskItemListCrmPage.razor b/Wonky.Client/Pages/AdvisorTaskItemListCrmPage.razor index 69ec18fa..56d129d5 100644 --- a/Wonky.Client/Pages/AdvisorTaskItemListCrmPage.razor +++ b/Wonky.Client/Pages/AdvisorTaskItemListCrmPage.razor @@ -18,8 +18,8 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Advisor")] -@page "/task-items" - +@page "/advisor/task-items" +Opgave Oversigt
@@ -30,7 +30,7 @@
diff --git a/Wonky.Client/Pages/AdvisorTaskItemViewCrmPage.razor b/Wonky.Client/Pages/AdvisorTaskItemViewCrmPage.razor index 2f26a641..e08ea6b4 100644 --- a/Wonky.Client/Pages/AdvisorTaskItemViewCrmPage.razor +++ b/Wonky.Client/Pages/AdvisorTaskItemViewCrmPage.razor @@ -18,8 +18,8 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components @attribute [Authorize(Roles = "Advisor")] -@page "/tasks/{TaskItemId}" - +@page "/advisor/tasks/{TaskItemId}" +Opgave kort

Opgave

diff --git a/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor b/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor index c7eb3057..d07ff957 100644 --- a/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor +++ b/Wonky.Client/Pages/AdvisorTodayActivityListPage.razor @@ -18,8 +18,8 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components @attribute [Authorize(Roles = "Advisor")] -@page "/activity-today" - +@page "/advisor/activity-today" +Aktiviteter for @($"{SelectedDate:yyyy-MM-dd}")
@@ -30,17 +30,17 @@
@if (ReportExist) { - Rapport + Rapport } else { - Rapport + Rapport }
@if (ReportStatusView.ReportItems.Any()) { - + } @if (Working) { diff --git a/Wonky.Client/Pages/AdvisorViewActivityPage.razor b/Wonky.Client/Pages/AdvisorViewActivityPage.razor index 9fa87e67..31a1d25e 100644 --- a/Wonky.Client/Pages/AdvisorViewActivityPage.razor +++ b/Wonky.Client/Pages/AdvisorViewActivityPage.razor @@ -19,9 +19,10 @@ @using Wonky.Client.Components @attribute [Authorize(Roles = "Admin,Advisor,Warehouse")] -@page "/customers/{CompanyId}/orders/{OrderId}" -@page "/customers/{CompanyId}/quotes/{OrderId}" +@page "/advisor/customers/{CompanyId}/orders/{OrderId}" +@page "/advisor/customers/{CompanyId}/quotes/{OrderId}" +@ReportItem.Company.Name @ReportItem.OrderDate @* *@
@@ -129,7 +130,7 @@
@* Office Note *@ -@if (ReportItem.ProcessStatusEnum == "None" && !ReportItem.Express && AllowOfficeNoteUpdate()) +@if (ReportItem is { ProcessStatusEnum: "None",Express: false } && AllowOfficeNoteUpdate()) {
diff --git a/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs b/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs index 369db7df..c60e6a47 100644 --- a/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs @@ -70,7 +70,7 @@ public partial class AdvisorViewActivityPage : IDisposable Logger.LogDebug("OfficeNote => \n {}", JsonSerializer.Serialize(Note)); await AdvisorActivityRepo.UpdateOfficeNote(Note); Toaster.ShowInfo($"{ReportItem.ESalesNumber} - notat opdateret"); - Navigator.NavigateTo("/activity-today"); + Navigator.NavigateTo("/advisor/activity-today"); } private bool AllowOfficeNoteUpdate() diff --git a/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor b/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor index 15f157e5..bdb7da82 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor +++ b/Wonky.Client/Pages/AdvisorWorkplaceDocumentListPage.razor @@ -18,8 +18,9 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components @attribute [Authorize(Roles = "Advisor")] -@page "/customers/{CompanyId}/workplaces/{WorkplaceId}/documents" +@page "/advisor/customers/{CompanyId}/workplaces/{WorkplaceId}/documents" +Dokumenter for Arbejdssted

Dokumenter

@if (Working) diff --git a/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor b/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor index e26c8218..ee86f86e 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor +++ b/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor @@ -18,11 +18,11 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components @attribute [Authorize(Roles = "Advisor")] -@page "/customers/{CompanyId}/workplaces" - +@page "/advisor/customers/{CompanyId}/workplaces" +@Company.Name arbejdssteder
-

@_company.Name

+

@Company.Name

diff --git a/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs b/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs index 0c8e3bd7..8f20d76e 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorWorkplaceListPage.razor.cs @@ -31,14 +31,14 @@ public partial class AdvisorWorkplaceListPage : IDisposable [Inject] public IAdvisorCustomerRepository _companyRepo { get; set; } [Inject] public HttpInterceptorService _interceptor { get; set; } private List _workplaces { get; set; } = new(); - private CompanyDto _company { get; set; } = new(); + private CompanyDto Company { get; set; } = new(); private bool Working { get; set; } = true; protected override async Task OnParametersSetAsync() { _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); - _company = await _companyRepo.GetCompanyById(CompanyId); + Company = await _companyRepo.GetCompanyById(CompanyId); Working = false; } diff --git a/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor b/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor index 9c920599..307977ba 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor +++ b/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor @@ -19,13 +19,13 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components @attribute [Authorize(Roles = "Advisor")] -@page "/customers/{CompanyId}/workplaces/{WorkplaceId}" - +@page "/advisor/customers/{CompanyId}/workplaces/{WorkplaceId}" +@Workplace.CompanyName - @Workplace.Name
-

@_workplace.CompanyName

-

@_workplace.Name @(!string.IsNullOrWhiteSpace(_workplace.Description) ? $"- {_workplace.Description}" : "")

+

@Workplace.CompanyName

+

@Workplace.Name @(!string.IsNullOrWhiteSpace(Workplace.Description) ? $"- {Workplace.Description}" : "")

@@ -44,13 +44,13 @@ Navn - - + + Beskrivelse - - + + @@ -59,48 +59,48 @@ Produkter - - + + Masker - - + + Øjenskylleflaske - - + + Handsker - - + + Førstehjælp - - + + Sikkerhedsbriller - - + + Affald - - + + @@ -114,7 +114,7 @@
diff --git a/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs b/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs index 7f1bac00..f4ee11e6 100644 --- a/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorWorkplaceViewPage.razor.cs @@ -33,7 +33,7 @@ public partial class AdvisorWorkplaceViewPage : IDisposable [Inject] public IAdvisorCustomerRepository _companyRepo { get; set; } [Inject] public HttpInterceptorService _interceptor { get; set; } [Inject] public NavigationManager _navigator { get; set; } - private WorkplaceDto _workplace { get; set; } = new(); + private WorkplaceDto Workplace { get; set; } = new(); private EditContext _editContext { get; set; } private bool Working { get; set; } = true; @@ -42,27 +42,27 @@ public partial class AdvisorWorkplaceViewPage : IDisposable _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); - _workplace = await WorkplaceCrmRepo.GetWorkplace(CompanyId, WorkplaceId); + Workplace = await WorkplaceCrmRepo.GetWorkplace(CompanyId, WorkplaceId); Working = false; } protected override void OnInitialized() { - _editContext = new EditContext(_workplace); + _editContext = new EditContext(Workplace); } private async Task SubmitUpdate() { Working = true; - await WorkplaceCrmRepo.UpdateWorkplace(CompanyId, _workplace); + await WorkplaceCrmRepo.UpdateWorkplace(CompanyId, Workplace); Working = false; } private async Task DeleteWorkplace() { Working = true; - await WorkplaceCrmRepo.DeleteWorkplace(CompanyId, _workplace.WorkplaceId); - _navigator.NavigateTo($"/customers/{CompanyId}/workplaces"); + await WorkplaceCrmRepo.DeleteWorkplace(CompanyId, Workplace.WorkplaceId); + _navigator.NavigateTo($"/advisor/customers/{CompanyId}/workplaces"); } public void Dispose() diff --git a/Wonky.Client/Pages/ErrorPage401.razor b/Wonky.Client/Pages/ErrorPage401.razor index dfd9abb3..1a57ddf5 100644 --- a/Wonky.Client/Pages/ErrorPage401.razor +++ b/Wonky.Client/Pages/ErrorPage401.razor @@ -16,6 +16,7 @@ *@ @page "/401" +Fejl 401
diff --git a/Wonky.Client/Pages/ErrorPage404.razor b/Wonky.Client/Pages/ErrorPage404.razor index fec60876..eeb6b1e7 100644 --- a/Wonky.Client/Pages/ErrorPage404.razor +++ b/Wonky.Client/Pages/ErrorPage404.razor @@ -17,6 +17,7 @@ @page "/page404" @page "/404" +Fejl 404
diff --git a/Wonky.Client/Pages/ErrorPage404.razor.cs b/Wonky.Client/Pages/ErrorPage404.razor.cs index c22a2502..1e4a0d05 100644 --- a/Wonky.Client/Pages/ErrorPage404.razor.cs +++ b/Wonky.Client/Pages/ErrorPage404.razor.cs @@ -21,7 +21,7 @@ public partial class ErrorPage404 { [Inject] public NavigationManager NavigationManager { get; set; } - public void NavigateToHome() + private void NavigateToHome() { // preserving the uri for later navigation var currUri = NavigationManager.Uri; diff --git a/Wonky.Client/Pages/ErrorPage500.razor b/Wonky.Client/Pages/ErrorPage500.razor index 17a568d0..ac123d2f 100644 --- a/Wonky.Client/Pages/ErrorPage500.razor +++ b/Wonky.Client/Pages/ErrorPage500.razor @@ -17,6 +17,7 @@ @page "/error" @page "/500" +Fejl 500
diff --git a/Wonky.Client/Pages/ErrorReportPage.razor b/Wonky.Client/Pages/ErrorReportPage.razor index da38f683..a29acc6f 100644 --- a/Wonky.Client/Pages/ErrorReportPage.razor +++ b/Wonky.Client/Pages/ErrorReportPage.razor @@ -16,6 +16,7 @@ *@ @page "/report-error/{errorCode:int}/{errorDescription}" +Fejlrapport

@ErrorCode

@ErrorDescription

diff --git a/Wonky.Client/Pages/Index.razor b/Wonky.Client/Pages/Index.razor index 81ff821d..b24eddcf 100644 --- a/Wonky.Client/Pages/Index.razor +++ b/Wonky.Client/Pages/Index.razor @@ -17,17 +17,17 @@ @using Wonky.Client.Components; @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Advisor,Admin,Office,Supervisor,Warehouse")] +@attribute [Authorize(Roles = "Admin,Advisor,Office,Supervisor,Warehouse")] @page "/" @page "/index" @page "/home" - +Innotec Danmark A/S - - + + @code{ diff --git a/Wonky.Client/Pages/InfoPage.razor b/Wonky.Client/Pages/InfoPage.razor index fbb87db4..a25c6f31 100644 --- a/Wonky.Client/Pages/InfoPage.razor +++ b/Wonky.Client/Pages/InfoPage.razor @@ -20,8 +20,8 @@ @using Wonky.Entity.Configuration @using Microsoft.AspNetCore.Authorization @page "/info" - -@attribute [Authorize(Roles = "Advisor,Admin,Office,Warehouse")] +App Information +@attribute [Authorize(Roles = "Admin,Advisor,Office,Supervisor,Warehouse")]
diff --git a/Wonky.Client/Pages/Login.razor b/Wonky.Client/Pages/Login.razor index 5be25076..f036bff5 100644 --- a/Wonky.Client/Pages/Login.razor +++ b/Wonky.Client/Pages/Login.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @page "/login/{returnUrl?}" - +App Login
@if (ShowAuthError) { diff --git a/Wonky.Client/Pages/Login.razor.cs b/Wonky.Client/Pages/Login.razor.cs index 3b08dffd..b885e3e5 100644 --- a/Wonky.Client/Pages/Login.razor.cs +++ b/Wonky.Client/Pages/Login.razor.cs @@ -45,7 +45,7 @@ public partial class Login } else { - Logger.LogInformation($"returnUrl={ReturnUrl}"); + Logger.LogInformation("returnUrl={}", ReturnUrl); var returnUrl = string.IsNullOrWhiteSpace(ReturnUrl) ? "/" : ReturnUrl; NavigationManager.NavigateTo(returnUrl); } diff --git a/Wonky.Client/Pages/CountryCatalogPage.razor b/Wonky.Client/Pages/OfficeCountryCatalogPage.razor similarity index 94% rename from Wonky.Client/Pages/CountryCatalogPage.razor rename to Wonky.Client/Pages/OfficeCountryCatalogPage.razor index 31a64d03..af2e0432 100644 --- a/Wonky.Client/Pages/CountryCatalogPage.razor +++ b/Wonky.Client/Pages/OfficeCountryCatalogPage.razor @@ -17,9 +17,9 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Warehouse")] +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] @page "/office/catalog/{CountryCode}" - +Produkt Katalog @CountryCode
diff --git a/Wonky.Client/Pages/CountryCatalogPage.razor.cs b/Wonky.Client/Pages/OfficeCountryCatalogPage.razor.cs similarity index 98% rename from Wonky.Client/Pages/CountryCatalogPage.razor.cs rename to Wonky.Client/Pages/OfficeCountryCatalogPage.razor.cs index 2be19ada..c49b1370 100644 --- a/Wonky.Client/Pages/CountryCatalogPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCountryCatalogPage.razor.cs @@ -23,7 +23,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CountryCatalogPage : IDisposable +public partial class OfficeCountryCatalogPage : IDisposable { [Inject] public ILocalStorageService Storage { get; set; } [Inject] public ICountryCatalogRepository Catalog { get; set; } diff --git a/Wonky.Client/Pages/CountryCreateNewOrderPage.razor b/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor similarity index 84% rename from Wonky.Client/Pages/CountryCreateNewOrderPage.razor rename to Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor index 1827437f..e55e05f9 100644 --- a/Wonky.Client/Pages/CountryCreateNewOrderPage.razor +++ b/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor @@ -15,9 +15,12 @@ // *@ +@using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Warehouse")] -@page "/office/customers/{CountryCode}/{CompanyId}/view" +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] +@page "/office/customers/{CountryCode}/{CompanyId}/order" + +Telefon Ordre - @Customer.Name - @Customer.Account
@@ -25,61 +28,47 @@
-
-
-

@Activity.Name - @Activity.Account

+
+
+

@Customer.Name - @Customer.Account

-@if (ReportClosed) -{ -
-
-

Der kan ikke oprettes bestilling når der findes rapport for @SelectedDate.ToShortDateString()

-
-
- -} -else -{ - + -
-
- - +
+ +
+ +
-
-
- -
+ +
- -
- - -
-
- -
- -
+ +
-
-
- -
+ +
+
+
+
+ + +
+
+
@@ -89,7 +78,7 @@ else -
+ Ordrekladde Global kladde (udløber efter @(DraftProvider.Draft.TimeToLiveInSeconds / 60)m inaktivitet) @@ -163,14 +152,14 @@ else
- +
- + @SelectedItem.Sku @@ -229,10 +218,11 @@ else - -
-
- -
+ +
+
+
-} +
+ + \ No newline at end of file diff --git a/Wonky.Client/Pages/CountryCreateNewOrderPage.razor.cs b/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor.cs similarity index 64% rename from Wonky.Client/Pages/CountryCreateNewOrderPage.razor.cs rename to Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor.cs index ba4edabd..2b506377 100644 --- a/Wonky.Client/Pages/CountryCreateNewOrderPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCountryCreateOrderPage.razor.cs @@ -26,28 +26,32 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CountryCreateNewOrderPage : IDisposable +public partial class OfficeCountryCreateOrderPage : IDisposable { - [Parameter] public string CompanyId { get; set; } = ""; - [Parameter] public string CountryCode { get; set; } = ""; - - [CascadingParameter] public DraftStateProvider DraftProvider { get; set; } - - [Inject] public ILogger Logger { get; set; } + [Inject] public ILogger Logger { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ICountryCustomerRepository CustomerRepo { get; set; } [Inject] public ICountryCustomerHistoryRepository InventoryRepo { get; set; } [Inject] public ICountryReportRepository ReportRepo { get; set; } [Inject] public ISystemUserRepository UserRepo { get; set; } + [Inject] public ICountryCatalogRepository Catalog { get; set; } + // parameters + [Parameter] public string CompanyId { get; set; } = ""; + [Parameter] public string CountryCode { get; set; } = ""; + [CascadingParameter] public DraftStateProvider DraftProvider { get; set; } - private DateTime SelectedDate { get; set; } - private CompanyDto _company { get; set; } = new(); - private List CustomerInventory { get; set; } = new(); + // private variables private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true}; + // class objects + private CompanyDto Customer { get; set; } = new(); + private List CustomerInventory { get; set; } = new(); private SalesItemView SelectedItem { get; set; } = new(); - private UserPref UserPrefs { get; set; } = new(); private ActivityDto Activity { get; set; } = new(); + private WebUserInfoView SalesRep { get; set; } = new(); + // edit context private EditContext ActivityContext { get; set; } + // variables + private DateTime SelectedDate { get; set; } private bool ShowItem { get; set; } private string Quantity { get; set; } = "1"; private string Price { get; set; } = "0"; @@ -55,67 +59,93 @@ public partial class CountryCreateNewOrderPage : IDisposable private bool ReportClosed { get; set; } private bool PoFormInvalid { get; set; } = true; private bool Working { get; set; } - private WebUserInfoView ThisUserInfo { get; set; } = new(); + private PriceListModal PriceList { get; set; } = new(); protected override async Task OnInitializedAsync() { + Interceptor.RegisterEvent(); + Interceptor.RegisterBeforeSendEvent(); + + // setup edit context ActivityContext = new EditContext(Activity); ActivityContext.OnFieldChanged += HandleFieldChanged; ActivityContext.OnValidationStateChanged += ValidationChanged; - - Interceptor.RegisterEvent(); - Interceptor.RegisterBeforeSendEvent(); - _company = await CustomerRepo.GetByCustomerId(CountryCode, CompanyId); + + // fetch customer + Customer = await CustomerRepo.GetByCustomerId(CountryCode, CompanyId); + Logger.LogDebug("Customer => {}", JsonSerializer.Serialize(Customer)); + var today = $"{DateTime.Now:yyyy-MM-dd}"; - var ts = _company.HistorySync; - if (ts != today) - ts = await InventoryRepo.InvoiceErpToCrmRpc(CountryCode, CompanyId, ts); - while (ts != today) - await Task.Delay(500); - // raise flag if report is closed - ReportClosed = await ReportRepo.ReportExist(_company.SalesRepId, ts); - // customer inventory + + // initiate a sync to ensure up-to-date product history + if (Customer.HistorySync != today) + Customer.HistorySync = await InventoryRepo.InvoiceErpToCrmRpc(CountryCode, CompanyId, Customer.HistorySync); + + // fetch customer inventory CustomerInventory = await InventoryRepo.FetchInventory(CountryCode, CompanyId); + Logger.LogDebug("Inventory => {}", JsonSerializer.Serialize(CustomerInventory)); + // get sales rep info - ThisUserInfo = await UserRepo.GetAdvisorInfo(_company.SalesRepId); - // setting up base data - Activity.BcId = _company.BcId; + SalesRep = await UserRepo.GetAdvisorInfo(Customer.SalesRepId); + Logger.LogDebug("SalesRep => {}", JsonSerializer.Serialize(SalesRep)); + + // set activity salesRep and countryCode + Activity.SalesRep = SalesRep.Advisor; + Activity.CountryCode = SalesRep.CountryCode; + + // add customer info into activity properties + Activity.Account = Customer.Account; + Activity.VatNumber = Customer.VatNumber; + Activity.Email = Customer.Email; + Activity.Phone = Customer.Phone; + Activity.Mobile = Customer.Mobile; + Activity.Name = Customer.Name; + Activity.Address1 = Customer.Address1; + Activity.Address2 = Customer.Address2; + Activity.ZipCode = Customer.ZipCode; + Activity.City = Customer.City; + Activity.DlvName = Customer.Name; + Activity.DlvAddress1 = Customer.Address1; + Activity.DlvAddress2 = Customer.Address2; + Activity.DlvZipCode = Customer.ZipCode; + Activity.DlvCity = Customer.City; + Activity.BcId = Customer.BcId; + Activity.CompanyId = Customer.CompanyId; + Activity.SalesRepId = Customer.SalesRepId; + + // setting up activity properties Activity.ActivityStatusEnum = "noSale"; - Activity.VisitTypeEnum = _company.Account is "" or "NY" ? "new" : "recall"; + Activity.VisitTypeEnum = "recall"; Activity.ActivityTypeEnum = "phone"; Activity.ActivityStatusEnum = "order"; - Activity.CompanyId = _company.CompanyId; - Activity.SalesRepId = _company.SalesRepId; - Activity.SalesRep = ThisUserInfo.Advisor; - Activity.CountryCode = ThisUserInfo.CountryCode; - Activity.Account = _company.Account; - Activity.VatNumber = _company.VatNumber; - Activity.Email = _company.Email; - Activity.Phone = _company.Phone; - Activity.Mobile = _company.Mobile; - Activity.Name = _company.Name; - Activity.Address1 = _company.Address1; - Activity.Address2 = _company.Address2; - Activity.ZipCode = _company.ZipCode; - Activity.City = _company.City; - Activity.DlvName = _company.Name; - Activity.DlvAddress1 = _company.Address1; - Activity.DlvAddress2 = _company.Address2; - Activity.DlvZipCode = _company.ZipCode; - Activity.DlvCity = _company.City; + // Initialize date variable SelectedDate = DateTime.Now; } private void CallPriceListModal() { - + PriceList.Show(); } + + private async Task PriceListCallback(SelectedSku sku) + { + // get selected item + if (string.IsNullOrWhiteSpace(sku.ItemId)) + return; + SelectedItem = await Catalog.GetSalesItemId(CountryCode, sku.ItemId); + ShowItem = true; + Price = sku.Rate; + Quantity = sku.Quantity; + StateHasChanged(); + } + private void CallPriceHistoryModal() { } + private void DeleteDraft() { @@ -141,7 +171,7 @@ public partial class CountryCreateNewOrderPage : IDisposable /// private async Task WorkDateComponentCallback(string workDate) { - ReportClosed = await ReportRepo.ReportExist(_company.SalesRepId, workDate); + ReportClosed = await ReportRepo.ReportExist(Customer.SalesRepId, workDate); SelectedDate = DateTime.Parse(workDate); Activity.ActivityDate = workDate; } @@ -153,21 +183,6 @@ public partial class CountryCreateNewOrderPage : IDisposable /// private void HandleFieldChanged(object sender, FieldChangedEventArgs e) { - Logger.LogDebug("ActivityNewPage => HandleFieldChanged => ActivityStatusEnum <= '{}'", Activity.ActivityStatusEnum); - DraftProvider.Draft.DraftType = Activity.ActivityStatusEnum; - if (Activity.ActivityStatusEnum == "noSale") - { - Logger.LogDebug("ActivityNewPage => ActivityStatusEnum == 'noSale' <= remove items"); - DraftProvider.Draft.Items = new List(); - - } - - // InvalidCanvas = InvalidActivityType; - if (Activity.YourRef.Length > 35 || Activity.ReferenceNumber.Length > 20 || DraftProvider.Draft.Items.Count == 0) - { - PoFormInvalid = true; - return; - } PoFormInvalid = !ActivityContext.Validate(); StateHasChanged(); } @@ -179,11 +194,6 @@ public partial class CountryCreateNewOrderPage : IDisposable /// private void ValidationChanged(object sender, ValidationStateChangedEventArgs e) { - if (string.IsNullOrEmpty(Activity.ActivityTypeEnum) && !ReportClosed) - { - PoFormInvalid = true; - return; - } PoFormInvalid = false; ActivityContext.OnFieldChanged -= HandleFieldChanged; ActivityContext.OnValidationStateChanged -= ValidationChanged; diff --git a/Wonky.Client/Pages/CountryCustomerListPage.razor b/Wonky.Client/Pages/OfficeCountryCustomerListPage.razor similarity index 81% rename from Wonky.Client/Pages/CountryCustomerListPage.razor rename to Wonky.Client/Pages/OfficeCountryCustomerListPage.razor index 1b0df42b..445d210c 100644 --- a/Wonky.Client/Pages/CountryCustomerListPage.razor +++ b/Wonky.Client/Pages/OfficeCountryCustomerListPage.razor @@ -17,19 +17,21 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Warehouse")] +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] + @page "/office/customers/{countryCode}" +Kunde oversigt @CountryCode
- +
- +
- +
@@ -47,7 +49,7 @@
- + @if (Working) { diff --git a/Wonky.Client/Pages/CountryCustomerListPage.razor.cs b/Wonky.Client/Pages/OfficeCountryCustomerListPage.razor.cs similarity index 98% rename from Wonky.Client/Pages/CountryCustomerListPage.razor.cs rename to Wonky.Client/Pages/OfficeCountryCustomerListPage.razor.cs index 43562e4d..e9369a24 100644 --- a/Wonky.Client/Pages/CountryCustomerListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCountryCustomerListPage.razor.cs @@ -28,7 +28,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages { - public partial class CountryCustomerListPage : IDisposable + public partial class OfficeCountryCustomerListPage : IDisposable { [Parameter] public string CountryCode { get; set; } = ""; [Inject] public ILocalStorageService Storage { get; set; } diff --git a/Wonky.Client/Pages/CountryLandingPage.razor b/Wonky.Client/Pages/OfficeCountryLandingPage.razor similarity index 97% rename from Wonky.Client/Pages/CountryLandingPage.razor rename to Wonky.Client/Pages/OfficeCountryLandingPage.razor index 6efa458d..79317838 100644 --- a/Wonky.Client/Pages/CountryLandingPage.razor +++ b/Wonky.Client/Pages/OfficeCountryLandingPage.razor @@ -16,9 +16,9 @@ *@ @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Warehouse")] +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] @page "/office/country" - +Kunde oversigt @CountryCode
diff --git a/Wonky.Client/Pages/CountryLandingPage.razor.cs b/Wonky.Client/Pages/OfficeCountryLandingPage.razor.cs similarity index 80% rename from Wonky.Client/Pages/CountryLandingPage.razor.cs rename to Wonky.Client/Pages/OfficeCountryLandingPage.razor.cs index 393bc45c..8b736cfa 100644 --- a/Wonky.Client/Pages/CountryLandingPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCountryLandingPage.razor.cs @@ -4,7 +4,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CountryLandingPage +public partial class OfficeCountryLandingPage { [Parameter] public string CountryCode { get; set; } = ""; } \ No newline at end of file diff --git a/Wonky.Client/Pages/CountryPrintCatalogPage.razor b/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor similarity index 83% rename from Wonky.Client/Pages/CountryPrintCatalogPage.razor rename to Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor index 3210d3d4..cd6f4e93 100644 --- a/Wonky.Client/Pages/CountryPrintCatalogPage.razor +++ b/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor @@ -17,10 +17,12 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Warehouse")] +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] @page "/print/catalog/{CountryCode}" - +Udskriv Katalog for @CountryName + + @if (Working) { diff --git a/Wonky.Client/Pages/CountryPrintCatalogPage.razor.cs b/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor.cs similarity index 91% rename from Wonky.Client/Pages/CountryPrintCatalogPage.razor.cs rename to Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor.cs index 82216fa7..43b1cf2e 100644 --- a/Wonky.Client/Pages/CountryPrintCatalogPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCountryPrintCatalogPage.razor.cs @@ -21,6 +21,7 @@ using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; using Microsoft.AspNetCore.Components; using Wonky.Client.Components; +using Wonky.Client.Helpers; using Wonky.Client.HttpInterfaces; using Wonky.Client.Services; using Wonky.Entity.DTO; @@ -29,7 +30,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CountryPrintCatalogPage : IDisposable +public partial class OfficeCountryPrintCatalogPage : IDisposable { [Inject] public ILocalStorageService Storage { get; set; } [Inject] public ICountryCatalogRepository Catalog { get; set; } @@ -38,6 +39,7 @@ public partial class CountryPrintCatalogPage : IDisposable private List Items { get; set; } = new(); private UserInfoView UserInfo { get; set; } = new(); private bool Working { get; set; } = true; + private string CountryName { get; set; } = ""; protected override async Task OnParametersSetAsync() { @@ -46,7 +48,7 @@ public partial class CountryPrintCatalogPage : IDisposable UserInfo = await Storage.GetItemAsync("_xu"); Items = await Catalog.GetPriceList(CountryCode); - + CountryName = Utils.CountryName(CountryCode); Working = false; } diff --git a/Wonky.Client/Pages/CountrySalesRepCustomerListPage.razor b/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor similarity index 78% rename from Wonky.Client/Pages/CountrySalesRepCustomerListPage.razor rename to Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor index 6cca392e..a462dd1f 100644 --- a/Wonky.Client/Pages/CountrySalesRepCustomerListPage.razor +++ b/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor @@ -17,20 +17,22 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Warehouse")] +@attribute [Authorize(Roles = "Admin, Office")] @page "/office/users/advisors/{CountryCode}/{UserId}/customers" +Kundeliste for @SalesRep.FirstName @SalesRep.LastName +
- +
- +
- +
@@ -47,13 +49,13 @@
- + @if (Working) { diff --git a/Wonky.Client/Pages/CountrySalesRepCustomerListPage.razor.cs b/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor.cs similarity index 93% rename from Wonky.Client/Pages/CountrySalesRepCustomerListPage.razor.cs rename to Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor.cs index 6b37dbb3..50959148 100644 --- a/Wonky.Client/Pages/CountrySalesRepCustomerListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeCountrySalesRepCustomerListPage.razor.cs @@ -19,16 +19,18 @@ using Wonky.Client.HttpInterfaces; using Wonky.Client.Services; using Wonky.Entity.DTO; using Wonky.Entity.Requests; +using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class CountrySalesRepCustomerListPage : IDisposable +public partial class OfficeCountrySalesRepCustomerListPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = "dk"; [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ICountryCustomerRepository CustomerRepo { get; set; } [Inject] public UserProfileService UserProfileService { get; set; } + [Inject] public ISystemUserRepository UserRepo { get; set; } private List CompanyList { get; set; } = new(); private MetaData ResponseMeta { get; set; } = new(); private CustomerPaging Paging = new(); @@ -36,12 +38,15 @@ public partial class CountrySalesRepCustomerListPage : IDisposable private string SavedSearch { get; set; } = ""; private bool IncludeFolded { get; set; } private bool Working { get; set; } = true; + private WebUserInfoView SalesRep { get; set; } = new(); protected override async Task OnParametersSetAsync() { Interceptor.DisposeEvent(); Interceptor.RegisterBeforeSendEvent(); + SalesRep = await UserRepo.GetAdvisorInfo(UserId); + // set preferences UserPref = await UserProfileService.GetPreferences(); Paging.OrderBy = UserPref.CompanySort; diff --git a/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor new file mode 100644 index 00000000..d9021b69 --- /dev/null +++ b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor @@ -0,0 +1,161 @@ +@* +// Copyright (C) 2022 FCS Frede's Computer Services. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] +// +*@ + +@using Microsoft.AspNetCore.Authorization +@using Wonky.Client.Components +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] +@page "/office/customers/{CompanyId}/orders/{OrderId}" +@_reportItem.ESalesNumber - @_reportItem.Company.Name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ @if (_reportItem.Express) + { +
+ +
+ @if (_reportItem.ProcessStatusEnum == "None") + { + + +
+
+
+ +
+
+ +
+
+
+
+
+ } + } +
+

@_reportItem.Company.Name

+ @if (_reportItem.Express) + { +

HASTER

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

@_reportItem.OfficeNote

+
+} + + +@if (Working) +{ + +} diff --git a/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.cs b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.cs new file mode 100644 index 00000000..10358ff0 --- /dev/null +++ b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.cs @@ -0,0 +1,136 @@ +// Copyright (C) 2022 FCS Frede's Computer Services. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] +// + + +using System.Text; +using System.Text.Json; +using Blazored.Toast.Services; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; +using Wonky.Client.HttpInterceptors; +using Wonky.Client.HttpInterfaces; +using Wonky.Client.HttpRepository; +using Wonky.Entity.DTO; +using Wonky.Entity.Views; +using System.Security.Claims; +using Blazored.LocalStorage; +using Wonky.Client.Services; + +namespace Wonky.Client.Pages; + +public partial class OfficeCustomerOrderViewPage : IDisposable +{ + [Parameter] public string CompanyId { get; set; } = ""; + [Parameter] public string OrderId { get; set; } = ""; + [Inject] public HttpInterceptorService Interceptor { get; set; } + [Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; } + [Inject] public ISystemSendMailService MailService { get; set; } + [Inject] public ILocalStorageService Storage { get; set; } + [Inject] public ISystemUserRepository SystemUserRepo { get; set; } + [Inject] public ILogger Logger { get; set; } + [Inject] public IToastService Toast { get; set; } + private ReportItemView _reportItem { get; set; } = new(); + private bool _isNotified { get; set; } + private bool Working { get; set; } = true; + + private readonly JsonSerializerOptions _options = new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }; + + protected override async Task OnInitializedAsync() + { + Interceptor.RegisterEvent(); + Interceptor.RegisterBeforeSendEvent(); + // fetch order from backend + _reportItem = await AdvisorActivityRepo.GetReportItem(OrderId); + Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(_reportItem, _options)); + Working = false; + } + + /// + /// Set activity process state to express. Send confirmation notification to salesRep + /// + private async Task SetExpressState() + { + // disable doubled actions + if (Working) + return; + Working = true; + Logger.LogDebug("GetExpressState => {}", JsonSerializer.Serialize(_reportItem, _options)); + // send request to backend + var responseView = await AdvisorActivityRepo.GetExpressState(_reportItem.ActivityId); + Logger.LogDebug("SetExpressState => responseView <= {} ", JsonSerializer.Serialize(responseView)); + // get user info from storage + var user = await Storage.GetItemAsync("_xu"); + // fetch sales rep from response + var salesRep = await SystemUserRepo.GetAdvisorInfo(responseView.Id); + Logger.LogDebug("SetExpressState => salesRep => {}", JsonSerializer.Serialize(salesRep)); + // create email notification body + var body = new StringBuilder(); + body.AppendLine($"Kvittering for modtagelse af hasteordre {_reportItem.ESalesNumber}"); + body.AppendLine($"Konto : {_reportItem.Company.Account}"); + body.AppendLine($"Navn : {_reportItem.Company.Name}"); + body.AppendLine( + $"Post By : {salesRep.CountryCode.ToUpper()}-{_reportItem.Company.ZipCode} {_reportItem.Company.City}"); + body.AppendLine(); + body.AppendLine("Med venlig hilsen"); + body.AppendLine($"{user.FullName}"); + body.AppendLine($"{user.PhoneNumber}"); + // create a list of mail addresses + var sendTo = new List + { + new() + { + Email = salesRep.Email, + Name = $"{salesRep.FirstName} {salesRep.LastName}" + } + }; + // create an email + var msg = new EmailMessage + { + Body = body.ToString(), + Subject = $"Haste ordre til {_reportItem.Company.Name} er modtaget.", + To = sendTo, + IsBodyHtml = false + }; + Logger.LogDebug("SetExpressState Notification => \n {}", JsonSerializer.Serialize(msg)); + // send a system generated email + var sendMail = await MailService.SendMail("System", msg); + + // result notification + if (sendMail.IsSuccess) + { + Toast + .ShowSuccess( + $"Status er opdateret og notifikation sendt til {salesRep.FirstName}.", "OK"); + } + else + { + Toast + .ShowWarning( + $"Notifikation til {salesRep.FirstName} kunne ikke sendes. {sendMail.Message}", "ADVARSEL"); + } + Logger.LogDebug("SendMail Result => \n {}", JsonSerializer.Serialize(sendMail)); + // disable further notifications + _isNotified = true; + Working = false; + } + + public void Dispose() + { + Interceptor.DisposeEvent(); + } +} \ No newline at end of file diff --git a/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.css b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.css new file mode 100644 index 00000000..6396fa53 --- /dev/null +++ b/Wonky.Client/Pages/OfficeCustomerOrderViewPage.razor.css @@ -0,0 +1,6 @@ +#watermark { + position: fixed; + z-index: 999; + top: 10px; + right: 0; +} \ No newline at end of file diff --git a/Wonky.Client/Pages/AdminReportListPage.razor b/Wonky.Client/Pages/OfficeReportListPage.razor similarity index 86% rename from Wonky.Client/Pages/AdminReportListPage.razor rename to Wonky.Client/Pages/OfficeReportListPage.razor index ae1bda17..8e5c79bb 100644 --- a/Wonky.Client/Pages/AdminReportListPage.razor +++ b/Wonky.Client/Pages/OfficeReportListPage.razor @@ -17,14 +17,15 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin")] +@attribute [Authorize(Roles = "Admin, Office")] @page "/office/users/advisors/{CountryCode}/{UserId}/reports" +Rapport Arkiv @UserInfo.FirstName @UserInfo.LastName

Rapport Arkiv - @UserInfo.FirstName @UserInfo.LastName

- +
diff --git a/Wonky.Client/Pages/AdminReportListPage.razor.cs b/Wonky.Client/Pages/OfficeReportListPage.razor.cs similarity index 98% rename from Wonky.Client/Pages/AdminReportListPage.razor.cs rename to Wonky.Client/Pages/OfficeReportListPage.razor.cs index fe7abf87..ab5e403a 100644 --- a/Wonky.Client/Pages/AdminReportListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeReportListPage.razor.cs @@ -23,7 +23,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdminReportListPage : IDisposable +public partial class OfficeReportListPage : IDisposable { [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = ""; diff --git a/Wonky.Client/Pages/AdminReportViewPage.razor b/Wonky.Client/Pages/OfficeReportViewPage.razor similarity index 95% rename from Wonky.Client/Pages/AdminReportViewPage.razor rename to Wonky.Client/Pages/OfficeReportViewPage.razor index 3977d043..5a82479c 100644 --- a/Wonky.Client/Pages/AdminReportViewPage.razor +++ b/Wonky.Client/Pages/OfficeReportViewPage.razor @@ -18,7 +18,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Models -@attribute [Authorize(Roles = "Admin")] +@attribute [Authorize(Roles = "Admin, Office")] @page "/office/users/advisors/{CountryCode}/{UserId}/reports/{ReportDate}"
@@ -53,7 +53,7 @@
- + } else diff --git a/Wonky.Client/Pages/AdminReportViewPage.razor.cs b/Wonky.Client/Pages/OfficeReportViewPage.razor.cs similarity index 97% rename from Wonky.Client/Pages/AdminReportViewPage.razor.cs rename to Wonky.Client/Pages/OfficeReportViewPage.razor.cs index 4c429c78..99aa3800 100644 --- a/Wonky.Client/Pages/AdminReportViewPage.razor.cs +++ b/Wonky.Client/Pages/OfficeReportViewPage.razor.cs @@ -23,7 +23,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdminReportViewPage : IDisposable +public partial class OfficeReportViewPage : IDisposable { /// /// Country code from url parameter @@ -65,7 +65,7 @@ public partial class AdminReportViewPage : IDisposable /// Logger service /// [Inject] - public ILogger Logger { get; set; } + public ILogger Logger { get; set; } /// /// Storage service diff --git a/Wonky.Client/Pages/AdminSalesRepListPage.razor b/Wonky.Client/Pages/OfficeSalesRepListPage.razor similarity index 86% rename from Wonky.Client/Pages/AdminSalesRepListPage.razor rename to Wonky.Client/Pages/OfficeSalesRepListPage.razor index cc9ae0f3..636d1c30 100644 --- a/Wonky.Client/Pages/AdminSalesRepListPage.razor +++ b/Wonky.Client/Pages/OfficeSalesRepListPage.razor @@ -17,15 +17,17 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin")] +@attribute [Authorize(Roles = "Admin, Office")] @page "/office/users/advisors/{CountryCode}" +Sælger Oversigt @CountryName +

Sælgere

- +
diff --git a/Wonky.Client/Pages/AdminSalesRepListPage.razor.cs b/Wonky.Client/Pages/OfficeSalesRepListPage.razor.cs similarity index 83% rename from Wonky.Client/Pages/AdminSalesRepListPage.razor.cs rename to Wonky.Client/Pages/OfficeSalesRepListPage.razor.cs index 7a56e6ec..54dd3290 100644 --- a/Wonky.Client/Pages/AdminSalesRepListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeSalesRepListPage.razor.cs @@ -1,22 +1,25 @@ using Microsoft.AspNetCore.Components; +using Wonky.Client.Helpers; using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpInterfaces; using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdminSalesRepListPage +public partial class OfficeSalesRepListPage :IDisposable { [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public ISystemUserRepository SystemUserRepo { get; set; } [Parameter] public string CountryCode { get; set; } = ""; private List SalesReps { get; set; } = new(); private bool Working { get; set; } = true; + private string CountryName { get; set; } = ""; protected override async Task OnInitializedAsync() { Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); + CountryName = Utils.CountryName(CountryCode); var AdvisorList = await SystemUserRepo.GetAdvisors(); SalesReps = AdvisorList .Where(x => x.CountryCode.ToLower() == CountryCode && Convert.ToInt32(x.SalesRep) < 100) diff --git a/Wonky.Client/Pages/PreferencesPage.razor b/Wonky.Client/Pages/PreferencesPage.razor index 48011910..39835b0d 100644 --- a/Wonky.Client/Pages/PreferencesPage.razor +++ b/Wonky.Client/Pages/PreferencesPage.razor @@ -29,14 +29,14 @@
- +
- +
diff --git a/Wonky.Client/Pages/PrintCatalogPage.razor b/Wonky.Client/Pages/PrintCatalogPage.razor index 5236afb3..dc76af95 100644 --- a/Wonky.Client/Pages/PrintCatalogPage.razor +++ b/Wonky.Client/Pages/PrintCatalogPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Advisor,Warehouse")] +@attribute [Authorize(Roles = "Admin,Office,Advisor,Warehouse")] @page "/print/catalog" diff --git a/Wonky.Client/Pages/PrintCatalogPage.razor.cs b/Wonky.Client/Pages/PrintCatalogPage.razor.cs index 7b054de0..62002827 100644 --- a/Wonky.Client/Pages/PrintCatalogPage.razor.cs +++ b/Wonky.Client/Pages/PrintCatalogPage.razor.cs @@ -34,14 +34,17 @@ public partial class PrintCatalogPage : IDisposable [Inject] public ILocalStorageService Storage { get; set; } [Inject] public IAdvisorCatalogRepository ItemRepo { get; set; } [Inject] public HttpInterceptorService Interceptor { get; set; } + private List Items { get; set; } = new(); private UserInfoView UserInfo { get; set; } = new(); + private bool Working { get; set; } = true; protected override async Task OnInitializedAsync() { Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); + UserInfo = await Storage.GetItemAsync("_xu"); Items = await ItemRepo.GetPriceList(); diff --git a/Wonky.Client/Pages/PrintFrontPage.razor b/Wonky.Client/Pages/PrintFrontPage.razor index 7d2a0ebc..97249b31 100644 --- a/Wonky.Client/Pages/PrintFrontPage.razor +++ b/Wonky.Client/Pages/PrintFrontPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Advisor")] +@attribute [Authorize(Roles = "Admin,Office,Advisor")] @page "/print/report/{CountryCode}/{UserId}/{ReportDate}"
@@ -44,6 +44,6 @@
- +
\ No newline at end of file diff --git a/Wonky.Client/Pages/PrintOrderPage.razor b/Wonky.Client/Pages/PrintOrderPage.razor index f2371a6f..fd01f431 100644 --- a/Wonky.Client/Pages/PrintOrderPage.razor +++ b/Wonky.Client/Pages/PrintOrderPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Advisor")] +@attribute [Authorize(Roles = "Admin,Office,Advisor")] @page "/print/orders/{CountryCode}/{UserId}/{ReportDate}"
diff --git a/Wonky.Client/Pages/WarehouseOrderListPage.razor b/Wonky.Client/Pages/WarehouseOrderListPage.razor index 8a2b7315..cba15e46 100644 --- a/Wonky.Client/Pages/WarehouseOrderListPage.razor +++ b/Wonky.Client/Pages/WarehouseOrderListPage.razor @@ -17,7 +17,7 @@ @using Wonky.Client.Components @using Microsoft.AspNetCore.Authorization -@attribute [Authorize(Roles = "Admin,Warehouse")] +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] @page "/warehouse/orders/{Status}"
diff --git a/Wonky.Client/Pages/WarehouseOrderViewPage.razor b/Wonky.Client/Pages/WarehouseOrderViewPage.razor index 3d8f45e3..42dd5c0b 100644 --- a/Wonky.Client/Pages/WarehouseOrderViewPage.razor +++ b/Wonky.Client/Pages/WarehouseOrderViewPage.razor @@ -17,7 +17,7 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components -@attribute [Authorize(Roles = "Admin,Warehouse")] +@attribute [Authorize(Roles = "Admin,Office,Warehouse")] @page "/warehouse/orders/process/{OrderId}" @if (!string.IsNullOrWhiteSpace(Order.OrderDate)) diff --git a/Wonky.Client/Shared/ConfirmWorkDateModal.razor b/Wonky.Client/Shared/ConfirmWorkDateModal.razor index 39a85bda..2875f478 100644 --- a/Wonky.Client/Shared/ConfirmWorkDateModal.razor +++ b/Wonky.Client/Shared/ConfirmWorkDateModal.razor @@ -16,7 +16,7 @@ *@