From fdab3dc2bbf44310cd115352b0dfb67b3ea70b8e Mon Sep 17 00:00:00 2001 From: Frede Hundewadt <22748698+fhdk@users.noreply.github.com> Date: Tue, 6 Sep 2022 17:30:26 +0200 Subject: [PATCH] v0.14.5 --- .../AdvisorActivityTableComponent.razor | 75 +++++++++++ ...=> AdvisorActivityTableComponent.razor.cs} | 33 +++-- .../Components/LandingComponentAdvisor.razor | 3 +- ...zor => OfficeActivityTableComponent.razor} | 0 ... => OfficeActivityTableComponent.razor.cs} | 2 +- .../OfficeAdvisorCustomerTableComponent.razor | 4 +- .../Components/OrderCreateComponent.razor | 22 ---- .../HttpInterfaces/IActivityHttpRepository.cs | 1 + .../HttpRepository/ActivityHttpRepository.cs | 8 +- .../Pages/AdvisorListActivityTodayPage.razor | 4 +- .../Pages/AdvisorNewActivityPage.razor.cs | 2 +- .../Pages/AdvisorViewActivityPage.razor | 117 +++++++++++++++++- .../Pages/AdvisorViewActivityPage.razor.cs | 55 ++++++++ .../Pages/AdvisorViewReportPage.razor | 2 +- .../Pages/OfficeViewAdvisorReportPage.razor | 2 +- ...azor => OfficeViewSalesActivityPage.razor} | 0 ...s => OfficeViewSalesActivityPage.razor.cs} | 2 +- Wonky.Client/Shared/NavMenu.razor | 21 ++-- Wonky.Client/wwwroot/appsettings.json | 13 +- Wonky.Entity/DTO/ActivityOfficeNote.cs | 7 ++ 20 files changed, 295 insertions(+), 78 deletions(-) create mode 100644 Wonky.Client/Components/AdvisorActivityTableComponent.razor rename Wonky.Client/Components/{OrderCreateComponent.razor.cs => AdvisorActivityTableComponent.razor.cs} (55%) rename Wonky.Client/Components/{ActivityTableComponent.razor => OfficeActivityTableComponent.razor} (100%) rename Wonky.Client/Components/{ActivityTableComponent.razor.cs => OfficeActivityTableComponent.razor.cs} (96%) delete mode 100644 Wonky.Client/Components/OrderCreateComponent.razor create mode 100644 Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs rename Wonky.Client/Pages/{SalesActivityViewPage.razor => OfficeViewSalesActivityPage.razor} (100%) rename Wonky.Client/Pages/{SalesActivityViewPage.razor.cs => OfficeViewSalesActivityPage.razor.cs} (94%) create mode 100644 Wonky.Entity/DTO/ActivityOfficeNote.cs diff --git a/Wonky.Client/Components/AdvisorActivityTableComponent.razor b/Wonky.Client/Components/AdvisorActivityTableComponent.razor new file mode 100644 index 00000000..2d99bf17 --- /dev/null +++ b/Wonky.Client/Components/AdvisorActivityTableComponent.razor @@ -0,0 +1,75 @@ +@* +// 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 (Activities.Any()) +{ + + + + + + + + + + + + + + + + + + @foreach (var activity in Activities) + { + + + + + + + + + + + + + + } + + + + + + + +
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()) + { + + } +
Total@Activities.Where(x => x.StatusTypeEnum == "Order").Sum(x => x.OrderAmount)
+} \ No newline at end of file diff --git a/Wonky.Client/Components/OrderCreateComponent.razor.cs b/Wonky.Client/Components/AdvisorActivityTableComponent.razor.cs similarity index 55% rename from Wonky.Client/Components/OrderCreateComponent.razor.cs rename to Wonky.Client/Components/AdvisorActivityTableComponent.razor.cs index 1752091e..f1dbd753 100644 --- a/Wonky.Client/Components/OrderCreateComponent.razor.cs +++ b/Wonky.Client/Components/AdvisorActivityTableComponent.razor.cs @@ -13,33 +13,30 @@ // along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] // - using Microsoft.AspNetCore.Components; -using Wonky.Client.HttpInterceptors; -using Wonky.Client.HttpInterfaces; -using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; +using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class OrderCreateComponent : IDisposable +public partial class AdvisorActivityTableComponent { - [Parameter] public string CustomerId { get; set; } = ""; - - [Inject] private ICompanyHttpRepository _companyRepo { get; set; } - [Inject] private HttpInterceptorService _interceptor { get; set; } - - private CompanyDto _company { get; set; } + [Parameter] public List Activities { get; set; } + [Inject] private NavigationManager _navigator { get; set; } - protected override async Task OnParametersSetAsync() + private static string GetProcessStatus(string processStatus) { - _interceptor.RegisterEvent(); - _interceptor.RegisterBeforeSendEvent(); - _company = await _companyRepo.GetCompanyById(CustomerId); + return processStatus.ToLower() switch + { + "none" => "the-ugly-fg", + "picked" => "the-bad-fg", + "packed" => "the-good-fg", + "shipped" => "the-draw-fg", + _ => "the-dead" + }; } - public void Dispose() + private void ShowOrder(string companyId, string orderId) { - _interceptor.DisposeEvent(); + _navigator.NavigateTo($"office/customers/{companyId}/orders/{orderId}"); } } \ No newline at end of file diff --git a/Wonky.Client/Components/LandingComponentAdvisor.razor b/Wonky.Client/Components/LandingComponentAdvisor.razor index 1b38e0e6..6065a0fe 100644 --- a/Wonky.Client/Components/LandingComponentAdvisor.razor +++ b/Wonky.Client/Components/LandingComponentAdvisor.razor @@ -33,5 +33,4 @@ - - + diff --git a/Wonky.Client/Components/ActivityTableComponent.razor b/Wonky.Client/Components/OfficeActivityTableComponent.razor similarity index 100% rename from Wonky.Client/Components/ActivityTableComponent.razor rename to Wonky.Client/Components/OfficeActivityTableComponent.razor diff --git a/Wonky.Client/Components/ActivityTableComponent.razor.cs b/Wonky.Client/Components/OfficeActivityTableComponent.razor.cs similarity index 96% rename from Wonky.Client/Components/ActivityTableComponent.razor.cs rename to Wonky.Client/Components/OfficeActivityTableComponent.razor.cs index 1f701659..12558ddc 100644 --- a/Wonky.Client/Components/ActivityTableComponent.razor.cs +++ b/Wonky.Client/Components/OfficeActivityTableComponent.razor.cs @@ -18,7 +18,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class ActivityTableComponent +public partial class OfficeActivityTableComponent { [Parameter] public List Activities { get; set; } [Inject] private NavigationManager _navigator { get; set; } diff --git a/Wonky.Client/Components/OfficeAdvisorCustomerTableComponent.razor b/Wonky.Client/Components/OfficeAdvisorCustomerTableComponent.razor index 86d1ca34..92c03ed2 100644 --- a/Wonky.Client/Components/OfficeAdvisorCustomerTableComponent.razor +++ b/Wonky.Client/Components/OfficeAdvisorCustomerTableComponent.razor @@ -48,8 +48,8 @@
- - +
@company.Name diff --git a/Wonky.Client/Components/OrderCreateComponent.razor b/Wonky.Client/Components/OrderCreateComponent.razor deleted file mode 100644 index 08acc813..00000000 --- a/Wonky.Client/Components/OrderCreateComponent.razor +++ /dev/null @@ -1,22 +0,0 @@ -@* -// Copyright (C) 2022 FCS Frede's Computer Services. -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as -// published by the Free Software Foundation, either version 3 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] -// -*@ - -

OrderCreateComponent

- -@code { - -} \ No newline at end of file diff --git a/Wonky.Client/HttpInterfaces/IActivityHttpRepository.cs b/Wonky.Client/HttpInterfaces/IActivityHttpRepository.cs index 534f4496..db690eb9 100644 --- a/Wonky.Client/HttpInterfaces/IActivityHttpRepository.cs +++ b/Wonky.Client/HttpInterfaces/IActivityHttpRepository.cs @@ -26,4 +26,5 @@ public interface IActivityHttpRepository Task AcceptOffer(string id); Task GetActivities(string activityDate); Task> GetCustomerActivities(string customerId); + Task UpdateOfficeNote(ActivityOfficeNote model); } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/ActivityHttpRepository.cs b/Wonky.Client/HttpRepository/ActivityHttpRepository.cs index 7c70cada..1dc2c29b 100644 --- a/Wonky.Client/HttpRepository/ActivityHttpRepository.cs +++ b/Wonky.Client/HttpRepository/ActivityHttpRepository.cs @@ -44,7 +44,7 @@ public class ActivityHttpRepository : IActivityHttpRepository private ILogger _logger; private readonly HttpClient _client; private readonly ApiConfig _apiConfig; - + public ActivityHttpRepository(HttpClient client, ILogger logger, NavigationManager navigation, IOptions configuration) @@ -55,6 +55,12 @@ public class ActivityHttpRepository : IActivityHttpRepository _apiConfig = configuration.Value; } + public async Task UpdateOfficeNote(ActivityOfficeNote model) + { + _logger.LogDebug("UpdateOfficeNote => model \n{}", JsonSerializer.Serialize(model) ); + _logger.LogDebug("UpdateOfficeNote => url \n{}", $"{_apiConfig.CrmSale}/activity/{model.ActivityId}" ); + await _client.PostAsJsonAsync($"{_apiConfig.CrmSale}/activity/{model.ActivityId}", model, _options); + } public async Task GetActivities(string activityDate) { var response = await _client diff --git a/Wonky.Client/Pages/AdvisorListActivityTodayPage.razor b/Wonky.Client/Pages/AdvisorListActivityTodayPage.razor index 2f24a63c..c83ae66f 100644 --- a/Wonky.Client/Pages/AdvisorListActivityTodayPage.razor +++ b/Wonky.Client/Pages/AdvisorListActivityTodayPage.razor @@ -28,7 +28,7 @@
- +
@if (_reportExist) @@ -44,7 +44,7 @@ @if (ReportStatusView.ReportItems.Any()) { - + } else { diff --git a/Wonky.Client/Pages/AdvisorNewActivityPage.razor.cs b/Wonky.Client/Pages/AdvisorNewActivityPage.razor.cs index 924dba4b..aac32d5a 100644 --- a/Wonky.Client/Pages/AdvisorNewActivityPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorNewActivityPage.razor.cs @@ -218,7 +218,7 @@ public partial class AdvisorNewActivityPage : IDisposable "onSite" => $"B:{_ux.FullName.Split(" ")[0]}", _ => "" }; - if (_draft.ActivityTypeEnum == "phone" && _draft.Express) + if (_draft.Express) _draft.OurRef = $"E{_draft.OurRef}"; _draft.Lines = new List(); diff --git a/Wonky.Client/Pages/AdvisorViewActivityPage.razor b/Wonky.Client/Pages/AdvisorViewActivityPage.razor index 3b2adaf1..c8931779 100644 --- a/Wonky.Client/Pages/AdvisorViewActivityPage.razor +++ b/Wonky.Client/Pages/AdvisorViewActivityPage.razor @@ -1,5 +1,114 @@ -

AdvisorViewActivityPage

+@using Microsoft.AspNetCore.Authorization +@attribute [Authorize(Roles = "Admin,Office,Warehouse,Advisor")] +@page "/companies/{CompanyId}/orders/{OrderId}" -@code { - -} \ No newline at end of file +@* *@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

@ReportItem.Company.Name

+ @if (ReportItem.StatusTypeEnum.ToLower() is "quote") + { +

TILBUD

+ } + @if (ReportItem.VisitTypeEnum.ToLower() == "phone" || ReportItem.OurRef.Contains("T:")) + { +

TELEFONORDRE

+ } + @if (ReportItem.Express) + { +

HASTER

+ } +
+
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) + { + + + + + + + + + } + + + + + + +
AntalVarnrBeskrivelsePrisR%Beløb
@line.Quantity@line.Sku@line.Description@($"{line.Price:N2}")@($"{line.Discount:N2}")@($"{line.LineSum:N2}")
Ordresum@ReportItem.OrderAmount
+
+ +
+ + +
+
+ +
+
+
\ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs b/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs new file mode 100644 index 00000000..3810887f --- /dev/null +++ b/Wonky.Client/Pages/AdvisorViewActivityPage.razor.cs @@ -0,0 +1,55 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +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; + +namespace Wonky.Client.Pages; + +public partial class AdvisorViewActivityPage : IDisposable +{ + [Parameter] public string CompanyId { get; set; } = ""; + [Parameter] public string OrderId { get; set; } = ""; + [Inject] private HttpInterceptorService _interceptor { get; set; } + [Inject] private IActivityHttpRepository _activityRepo { get; set; } + [Inject] private ILogger _logger { get; set; } + [Inject] private IToastService _toast { get; set; } + private ReportItemView ReportItem { get; set; } = new(); + private ActivityOfficeNote _note { get; set; } = new(); + private EditContext OfficeNote { get; set; } + private bool _disabled { get; set; } + + protected override async Task OnInitializedAsync() + { + _interceptor.RegisterEvent(); + _interceptor.RegisterBeforeSendEvent(); + OfficeNote = new EditContext(_note); + OfficeNote.OnFieldChanged += HandleFieldChanged; + ReportItem = await _activityRepo.GetReportItem(OrderId); + _note.ActivityId = ReportItem.ActivityId; + _note.OfficeNote = ReportItem.OfficeNote; + } + + private void HandleFieldChanged(object sender, FieldChangedEventArgs e) + { + StateHasChanged(); + } + + private async Task UpdateOfficeNote() + { + _disabled = true; + _logger.LogDebug("OfficeNote => \n {}", JsonSerializer.Serialize(_note)); + await _activityRepo.UpdateOfficeNote(_note); + _toast.ShowInfo($"{ReportItem.ESalesNumber} - notat opdateret"); + } + + public void Dispose() + { + _interceptor.DisposeEvent(); + } +} \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorViewReportPage.razor b/Wonky.Client/Pages/AdvisorViewReportPage.razor index 85a2d8f4..291fa24c 100644 --- a/Wonky.Client/Pages/AdvisorViewReportPage.razor +++ b/Wonky.Client/Pages/AdvisorViewReportPage.razor @@ -47,7 +47,7 @@
- + } else diff --git a/Wonky.Client/Pages/OfficeViewAdvisorReportPage.razor b/Wonky.Client/Pages/OfficeViewAdvisorReportPage.razor index 72546363..01d2a136 100644 --- a/Wonky.Client/Pages/OfficeViewAdvisorReportPage.razor +++ b/Wonky.Client/Pages/OfficeViewAdvisorReportPage.razor @@ -48,7 +48,7 @@ - + } else diff --git a/Wonky.Client/Pages/SalesActivityViewPage.razor b/Wonky.Client/Pages/OfficeViewSalesActivityPage.razor similarity index 100% rename from Wonky.Client/Pages/SalesActivityViewPage.razor rename to Wonky.Client/Pages/OfficeViewSalesActivityPage.razor diff --git a/Wonky.Client/Pages/SalesActivityViewPage.razor.cs b/Wonky.Client/Pages/OfficeViewSalesActivityPage.razor.cs similarity index 94% rename from Wonky.Client/Pages/SalesActivityViewPage.razor.cs rename to Wonky.Client/Pages/OfficeViewSalesActivityPage.razor.cs index 73e45da1..d418df52 100644 --- a/Wonky.Client/Pages/SalesActivityViewPage.razor.cs +++ b/Wonky.Client/Pages/OfficeViewSalesActivityPage.razor.cs @@ -8,7 +8,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class SalesActivityViewPage +public partial class OfficeViewSalesActivityPage { [Parameter] public string CompanyId { get; set; } = ""; [Parameter] public string OrderId { get; set; } = ""; diff --git a/Wonky.Client/Shared/NavMenu.razor b/Wonky.Client/Shared/NavMenu.razor index dc7a29ad..f4b60ea3 100644 --- a/Wonky.Client/Shared/NavMenu.razor +++ b/Wonky.Client/Shared/NavMenu.razor @@ -46,14 +46,6 @@ - - - - - @@ -90,6 +77,14 @@ + + + +