From 258909077ac71c0dca30bda5c5e5a37b5f8334e8 Mon Sep 17 00:00:00 2001 From: Frede Hundewadt Date: Thu, 2 Nov 2023 18:25:58 +0100 Subject: [PATCH] report calculation and code cleanup --- .../Components/ActivityListComponent.razor | 64 ++++++-------- .../Components/ActivityListComponent.razor.cs | 3 + .../Components/ProcessStateComponent.razor | 2 +- .../Components/ProcessStateComponent.razor.cs | 2 +- .../ReportActivityListOfficeComponent.razor | 2 +- ...ReportActivityListOfficeComponent.razor.cs | 2 +- ...ityListShowDocumentCallbackComponent.razor | 2 +- .../Components/ReportSummaryComponent.razor | 2 +- .../Components/ReportVisitComponent.razor | 4 +- .../CountryProductCatalogRepository.cs | 8 +- .../ContactViewEditModal.razor.cs | 2 +- .../Pages/AdvisorActivityTodayListPage.razor | 2 +- .../Pages/AdvisorActivityViewEditPage.razor | 2 + .../Pages/AdvisorCustomerViewEditPage.razor | 1 + .../AdvisorCustomerViewEditPage.razor.cs | 1 + ...AdvisorCustomerWorkplaceViewEditPage.razor | 4 +- ...isorCustomerWorkplaceViewEditPage.razor.cs | 4 +- .../Pages/AdvisorReportCreatePage.razor | 7 +- .../Pages/AdvisorReportCreatePage.razor.cs | 11 +-- .../Pages/AdvisorReportViewPage.razor | 8 +- .../Pages/AdvisorReportViewPage.razor.cs | 11 ++- .../Pages/BusinessOrderViewPage.razor.cs | 87 ++++++++++++++++++- .../Pages/CommonReportPrintSummaryPage.razor | 8 +- .../Pages/OfficeAdvisorReportListPage.razor | 5 +- .../OfficeAdvisorReportListPage.razor.cs | 1 + .../Pages/OfficeAdvisorReportViewPage.razor | 52 +++++------ .../Pages/OfficeCustomerOrderCreatePage.razor | 4 - .../OfficeCustomerOrderCreatePage.razor.cs | 32 ++++--- .../SupervisorAdvisorReportViewPage.razor | 8 +- .../Pages/SupervisorDocumentListPage.razor | 2 +- .../Pages/SupervisorDocumentListPage.razor.cs | 2 +- .../SupervisorDocumentViewEditPage.razor | 2 +- .../SupervisorDocumentViewEditPage.razor.cs | 2 +- Wonky.Client/Wonky.Client.csproj | 10 +++ Wonky.Client/wwwroot/appsettings.json | 4 +- Wonky.Client/wwwroot/css/app.css | 5 ++ Wonky.Client/wwwroot/index.html | 6 +- Wonky.Entity/Configuration/ApiConfig.cs | 2 +- Wonky.Entity/DTO/ReportDto.cs | 48 +++------- Wonky.Entity/DTO/ReportInitDto.cs | 14 +-- Wonky.Entity/Views/ReportFiguresView.cs | 7 +- Wonky.Entity/Views/ReportView.cs | 2 +- 42 files changed, 260 insertions(+), 187 deletions(-) diff --git a/Wonky.Client/Components/ActivityListComponent.razor b/Wonky.Client/Components/ActivityListComponent.razor index f2e84a24..708d4082 100644 --- a/Wonky.Client/Components/ActivityListComponent.razor +++ b/Wonky.Client/Components/ActivityListComponent.razor @@ -14,62 +14,53 @@ *@ @using Wonky.Entity.Views - @* Report activities *@ - - +
+ - - - - - - - - - - - + + + + + + + + + + + @foreach (var activity in Activities) { - + - - - - + + + - - @@ -77,3 +68,4 @@
KundeBynavnDemoSalgNoteSASBeløb - - - - - - - - KundeBynavnDemoSalgNoteSASBeløb
@activity.Company.Name@activity.Company.Name @activity.Company.City @activity.Demo @activity.Sales @activity.OfficeNote@($"{activity.SasAmount:N2}")@(activity.StatusTypeEnum.Contains("Quote") ? "{0:N2}" : $"{activity.OrderAmount - activity.SasAmount:N2}") - @if (activity.OurRef.Contains("T:") || activity.OurRef.Contains("TLF:")) - {} - @if (activity.OurRef.Contains("WEB:")) - {} - + @($"{activity.SasAmount:N2}")@(activity.StatusTypeEnum.Contains("Quote") ? "{0:N2}" : $"{activity.OrderAmount - activity.SasAmount:N2}") + @if (activity.OurRef.Contains("T:") || activity.OurRef.Contains("TLF:")) + {} + @if (activity.OurRef.Contains("WEB:")) + {} + @if (activity.Express) { - + } + @if (activity.StatusTypeEnum == "Quote") { - + } +
+ diff --git a/Wonky.Client/Components/ActivityListComponent.razor.cs b/Wonky.Client/Components/ActivityListComponent.razor.cs index 247a2d3f..19523d1d 100644 --- a/Wonky.Client/Components/ActivityListComponent.razor.cs +++ b/Wonky.Client/Components/ActivityListComponent.razor.cs @@ -21,4 +21,7 @@ namespace Wonky.Client.Components; public partial class ActivityListComponent { [Parameter] public List Activities { get; set; } = new(); + [Parameter] public string ViewUrl { get; set; } = ""; + + } \ No newline at end of file diff --git a/Wonky.Client/Components/ProcessStateComponent.razor b/Wonky.Client/Components/ProcessStateComponent.razor index a3f52b8f..70f89dd8 100644 --- a/Wonky.Client/Components/ProcessStateComponent.razor +++ b/Wonky.Client/Components/ProcessStateComponent.razor @@ -13,4 +13,4 @@ // along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] *@ - + diff --git a/Wonky.Client/Components/ProcessStateComponent.razor.cs b/Wonky.Client/Components/ProcessStateComponent.razor.cs index 984e8061..71168033 100644 --- a/Wonky.Client/Components/ProcessStateComponent.razor.cs +++ b/Wonky.Client/Components/ProcessStateComponent.razor.cs @@ -23,7 +23,7 @@ public partial class ProcessStateComponent protected override void OnParametersSet() { - Icon = StateClass switch + Icon = StateClass.ToLower() switch { "the-fast" => "lightning-charge", "the-good" => "file-earmark", diff --git a/Wonky.Client/Components/ReportActivityListOfficeComponent.razor b/Wonky.Client/Components/ReportActivityListOfficeComponent.razor index 56eb3690..adb48107 100644 --- a/Wonky.Client/Components/ReportActivityListOfficeComponent.razor +++ b/Wonky.Client/Components/ReportActivityListOfficeComponent.razor @@ -18,7 +18,7 @@ @if (ActivityList.Any()) { - +
diff --git a/Wonky.Client/Components/ReportActivityListOfficeComponent.razor.cs b/Wonky.Client/Components/ReportActivityListOfficeComponent.razor.cs index b0a11d7b..18097bec 100644 --- a/Wonky.Client/Components/ReportActivityListOfficeComponent.razor.cs +++ b/Wonky.Client/Components/ReportActivityListOfficeComponent.razor.cs @@ -19,7 +19,7 @@ using Wonky.Entity.Views; namespace Wonky.Client.Components; -public partial class ActivityListOfficeReportComponent +public partial class ReportActivityListOfficeComponent { [Parameter] public List ActivityList { get; set; } = new(); [Inject] public NavigationManager Navigator { get; set; } diff --git a/Wonky.Client/Components/ReportActivityListShowDocumentCallbackComponent.razor b/Wonky.Client/Components/ReportActivityListShowDocumentCallbackComponent.razor index 0618c64a..fe0a958e 100644 --- a/Wonky.Client/Components/ReportActivityListShowDocumentCallbackComponent.razor +++ b/Wonky.Client/Components/ReportActivityListShowDocumentCallbackComponent.razor @@ -19,7 +19,7 @@ ReportActivityListShowDocumentCallbackComponent.razor @if (Activities.Any()) { -
Kunde
+
diff --git a/Wonky.Client/Components/ReportSummaryComponent.razor b/Wonky.Client/Components/ReportSummaryComponent.razor index 9522f015..2f7e041e 100644 --- a/Wonky.Client/Components/ReportSummaryComponent.razor +++ b/Wonky.Client/Components/ReportSummaryComponent.razor @@ -15,7 +15,7 @@
Kunde
- + diff --git a/Wonky.Client/Components/ReportVisitComponent.razor b/Wonky.Client/Components/ReportVisitComponent.razor index 46b2b3f1..22420aa0 100644 --- a/Wonky.Client/Components/ReportVisitComponent.razor +++ b/Wonky.Client/Components/ReportVisitComponent.razor @@ -17,7 +17,7 @@ @using Wonky.Entity.Views
-
Rapport
+
@@ -137,7 +137,7 @@ }
- @if (!string.IsNullOrWhiteSpace(@ReportItem.OfficeNote)) + @if (!string.IsNullOrWhiteSpace(ReportItem.OfficeNote)) {

diff --git a/Wonky.Client/HttpRepository/CountryProductCatalogRepository.cs b/Wonky.Client/HttpRepository/CountryProductCatalogRepository.cs index 1c2dcbc0..ab0bd221 100644 --- a/Wonky.Client/HttpRepository/CountryProductCatalogRepository.cs +++ b/Wonky.Client/HttpRepository/CountryProductCatalogRepository.cs @@ -80,7 +80,7 @@ public class CountryProductCatalogRepository : ICountryProductCatalogRepository ["selectGroup"] = pager.SelectGroup == "0" ? "" : pager.SelectGroup }; - var endpoint = WebUtils.QueryHelper($"{_api:CountryProductCatalog}/{countryCode}/page", queryDictionary); + var endpoint = WebUtils.QueryHelper($"{_api.CountryProductCatalog}/{countryCode}/page", queryDictionary); var response = await _client.GetAsync(endpoint); if (!response.IsSuccessStatusCode) @@ -111,7 +111,7 @@ public class CountryProductCatalogRepository : ICountryProductCatalogRepository /// public async Task GetProductItemSku(string countryCode, string sku) { - var salesItem = await _client.GetFromJsonAsync($"{_api:CountryProductCatalog}/{countryCode}/sku/{sku}"); + var salesItem = await _client.GetFromJsonAsync($"{_api.CountryProductCatalog}/{countryCode}/sku/{sku}"); return salesItem ?? new ProductItemView(); } @@ -124,7 +124,7 @@ public class CountryProductCatalogRepository : ICountryProductCatalogRepository public async Task GetProductDetailView(string salesItemId) { var detailView = await _client - .GetFromJsonAsync($"{_api:CountryProductCatalog}/{salesItemId}"); + .GetFromJsonAsync($"{_api.CountryProductCatalog}/{salesItemId}"); return detailView ?? new ProductDetailView(); } @@ -137,7 +137,7 @@ public class CountryProductCatalogRepository : ICountryProductCatalogRepository public async Task GetVariantDetailView(string variantId) { var detailView = await _client - .GetFromJsonAsync($"{_api:CountryProductCatalog}/variant/{variantId}"); + .GetFromJsonAsync($"{_api.CountryProductCatalog}/variant/{variantId}"); return detailView ?? new ProductDetailView(); } } \ No newline at end of file diff --git a/Wonky.Client/OverlayCustomer/ContactViewEditModal.razor.cs b/Wonky.Client/OverlayCustomer/ContactViewEditModal.razor.cs index 599bdb69..165ef628 100644 --- a/Wonky.Client/OverlayCustomer/ContactViewEditModal.razor.cs +++ b/Wonky.Client/OverlayCustomer/ContactViewEditModal.razor.cs @@ -25,7 +25,7 @@ using Wonky.Entity.Requests; using Wonky.Entity.Views; #pragma warning disable CS8618 -namespace Wonky.Client.Shared; +namespace Wonky.Client.OverlayCustomer; public partial class ContactViewEditModal { diff --git a/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor b/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor index be991ee7..0e68fb8c 100644 --- a/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor +++ b/Wonky.Client/Pages/AdvisorActivityTodayListPage.razor @@ -39,7 +39,7 @@

@if (ReportStatusView.ReportItems.Any()) { - + } @if (Working) { diff --git a/Wonky.Client/Pages/AdvisorActivityViewEditPage.razor b/Wonky.Client/Pages/AdvisorActivityViewEditPage.razor index e7434b39..0c8c40d0 100644 --- a/Wonky.Client/Pages/AdvisorActivityViewEditPage.razor +++ b/Wonky.Client/Pages/AdvisorActivityViewEditPage.razor @@ -100,6 +100,7 @@ Pris R% Beløb + SAS @@ -112,6 +113,7 @@ @($"{line.Price:N2}") @($"{line.Discount:N2}") @($"{line.LineSum:N2}") + @if(line.Sas){} } diff --git a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor index 30f08763..bf87aae7 100644 --- a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor @@ -15,6 +15,7 @@ @using Microsoft.AspNetCore.Authorization @using Wonky.Client.Components +@using Wonky.Client.OverlayCustomer @attribute [Authorize(Roles = "Advisor")] @page "/advisor/customers/{CompanyId}" Stamkort for @_company.Name diff --git a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs index e74e27a3..d87ccc8d 100644 --- a/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCustomerViewEditPage.razor.cs @@ -26,6 +26,7 @@ using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; using Wonky.Client.Local.Services; using Wonky.Client.Models; +using Wonky.Client.OverlayCustomer; using Wonky.Client.Shared; using Wonky.Entity.Configuration; using Wonky.Entity.DTO; diff --git a/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor b/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor index 7d13045c..d44c6abb 100644 --- a/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor +++ b/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor @@ -194,5 +194,5 @@ } - - + + diff --git a/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor.cs b/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor.cs index 14d88927..164ebaad 100644 --- a/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorCustomerWorkplaceViewEditPage.razor.cs @@ -57,7 +57,7 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable private bool Working { get; set; } = true; private WorkplaceDocInfo WorkplaceDocInfo { get; set; } = new(); private List DocViews { get; set; } = new(); - private ConfirmActionModal ConfirmActionWorkplace { get; set; } + private ConfirmationModal ConfirmActionWorkplace { get; set; } private string DeleteMessage { get; set; } = ""; private string LinkRecipients { get; set; } = ""; private const string CopyText = "Kopier"; @@ -78,7 +78,7 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable private string _linkButtonStyle = LinkStyle; private ApiConfig _config = new(); - private ConfirmActionModal ConfirmActionVariant { get; set; } + private ConfirmationModal ConfirmActionVariant { get; set; } private DocView SelectedItem { get; set; } = new(); private bool OnlyOne { get; set; } = true; diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor b/Wonky.Client/Pages/AdvisorReportCreatePage.razor index af9d2046..f7c7c70c 100644 --- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor +++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor @@ -185,13 +185,13 @@ @if (_activities.Any()) {
- +
} }
@* ledger summaries calculated *@ - +
@@ -200,4 +200,5 @@ } - \ No newline at end of file + \ No newline at end of file diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs index 4890c8fb..2cb9ae0e 100644 --- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs @@ -45,7 +45,7 @@ public partial class AdvisorReportCreatePage : IDisposable private EditContext ReportContext { get; set; } private ReportDto Report { get; set; } = new(); private List _activities = new(); - private ReportFiguresDto _initialValues = new(); + private ReportFiguresView _initialValues = new(); private UserPreference _preference = new(); private bool _formInvalid = true; private bool _noFigures = true; @@ -117,6 +117,7 @@ public partial class AdvisorReportCreatePage : IDisposable Report.Figures.DistancePrivateMonth = 0; await GetKeyFigures(); + Logger.LogDebug("OnInitializedAsync => GetKeyFigures <= {}", JsonSerializer.Serialize(Report)); } @@ -133,8 +134,8 @@ public partial class AdvisorReportCreatePage : IDisposable return; _working = true; - Report.Figures = new ReportFiguresDto(); - _initialValues = new ReportFiguresDto(); + Report.Figures = new ReportFiguresView(); + _initialValues = new ReportFiguresView(); _activities = new List(); var data = await AdvisorSalesReportRepo.InitializeReportData(_workDate); @@ -312,8 +313,8 @@ public partial class AdvisorReportCreatePage : IDisposable _thisWorkDate = DateTime.Parse(workDate); _noFigures = true; - Report.Figures = new ReportFiguresDto(); - _initialValues = new ReportFiguresDto(); + Report.Figures = new ReportFiguresView(); + _initialValues = new ReportFiguresView(); _activities = new List(); Report.Figures.KmEvening = 0; diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor b/Wonky.Client/Pages/AdvisorReportViewPage.razor index fa5247ea..e64c24db 100644 --- a/Wonky.Client/Pages/AdvisorReportViewPage.razor +++ b/Wonky.Client/Pages/AdvisorReportViewPage.razor @@ -45,14 +45,14 @@
- +
- +
- - + + } else { diff --git a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs b/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs index fb27f150..70a9bf1d 100644 --- a/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs +++ b/Wonky.Client/Pages/AdvisorReportViewPage.razor.cs @@ -14,6 +14,7 @@ // +using System.Text.Json; using Blazored.LocalStorage; using Microsoft.AspNetCore.Components; using Wonky.Client.Enums; @@ -44,8 +45,8 @@ public partial class AdvisorReportViewPage : IDisposable private bool Working { get; set; } private UserManagerEditView XUserInfo { get; set; } = new(); private string ReturnUrl { get; set; } = ""; - - protected override async Task OnInitializedAsync() + + protected override async Task OnParametersSetAsync() { Interceptor.RegisterEvent(); Interceptor.RegisterBeforeSendEvent(); @@ -53,6 +54,10 @@ public partial class AdvisorReportViewPage : IDisposable XUserInfo = await UserInfoService.GetUserInfo(); PreferenceService.OnChange += ProfileServiceOnOnChange; + } + + protected override async Task OnInitializedAsync() + { await PreferenceService.SetWorkDate(DateTime.Parse(ReportDate)); if(!string.IsNullOrWhiteSpace(ReportDate)) @@ -108,6 +113,8 @@ public partial class AdvisorReportViewPage : IDisposable // fetch report Report = await AdvisorSalesReportRepo.GetReport(workDate); + Logger.LogDebug("Report => {}", JsonSerializer.Serialize(Report)); + // extract activities Activities = Report.ReportItems.Where(x => x.Lines.Any()).ToList(); diff --git a/Wonky.Client/Pages/BusinessOrderViewPage.razor.cs b/Wonky.Client/Pages/BusinessOrderViewPage.razor.cs index 7fe9628b..e51fd040 100644 --- a/Wonky.Client/Pages/BusinessOrderViewPage.razor.cs +++ b/Wonky.Client/Pages/BusinessOrderViewPage.razor.cs @@ -1,7 +1,11 @@ +using System.Diagnostics; +using System.Text.Json; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; using Microsoft.Extensions.Options; using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; +using Wonky.Client.Local.Services; using Wonky.Client.Models; using Wonky.Client.OverlayB2B; using Wonky.Client.Shared; @@ -17,10 +21,10 @@ public partial class BusinessOrderViewPage // ############################################################## [Inject] public HttpInterceptorService Interceptor { get; set; } [Inject] public IB2BRepository B2BRepo { get; set; } - - [Inject] - public ICountryPriceCatalogRepository PriceCatalog { get; set; } - [Inject] private IOptions Config { get; set; } + [Inject] public ILogger Logger { get; set; } + [Inject] public ICountryPriceCatalogRepository PriceCatalog { get; set; } + [Inject] public IOptions Config { get; set; } + [Inject] public IUserInfoService UserInfoService { get; set; } // ############################################################## [CascadingParameter] private DraftStateProvider DraftProvider { get; set; } = new(); @@ -28,6 +32,7 @@ public partial class BusinessOrderViewPage [Parameter] public string CompanyId { get; set; } = ""; // ############################################################## + private UserManagerEditView UserInfo { get; set; } = new(); private B2BBusinessInfo _businessInfo = new(); private B2BAdvisorInfo _advisorInfo = new(); private List _productHistory = new(); @@ -36,5 +41,79 @@ public partial class BusinessOrderViewPage private B2BProductPriceHistoryOverlay PriceHistoryOverlay { get; set; } private ItemSelect _selectedItem = new(); private ActivityDto Activity { get; set; } = new(); + private DateTime SelectedDate { get; set; } + private bool Working { get; set; } = true; + protected override async Task OnInitializedAsync() + { + Interceptor.RegisterEvent(); + Interceptor.RegisterBeforeSendEvent(); + + // get info for logged in user + UserInfo = await UserInfoService.GetUserInfo(); + + Activity.ActivityVisitEnum = "web"; + Activity.ActivityTypeEnum = "phone"; + Activity.ActivityStatusEnum = "order"; + Activity.Express = true; + Activity.OurRef = $"TLF:{UserInfo.FirstName}"; + + // setup edit context + // ActivityContext = new EditContext(Activity); + // ActivityContext.OnFieldChanged += HandleFieldChanged; + // ActivityContext.OnValidationStateChanged += ValidationChanged; + // // fetch customer + // Company = await CustomerRepo.GetByCustomerId(CountryCode, CompanyId); + // Logger.LogDebug("OfficeOrderCreate => Customer => {}", JsonSerializer.Serialize(Company)); + // construct today's workdate + // Initialize date variable + SelectedDate = DateTime.Now; + var today = $"{SelectedDate:yyyy-MM-dd}"; + Activity.ActivityDate = today; + // initiate a sync to ensure up-to-date product history + // if (Company.HistorySync != today) + // { + // Company.HistorySync = await HistoryRepo.RequestErpToCrmSync(CompanyId, Company.HistorySync, false); + // Logger.LogDebug("OfficeOrderCreate => RequestErpToCrmSync <= {}", Company.HistorySync); + // } + // fetch invoices + // CompanyInvoices = await HistoryRepo.GetInvoiceList(CountryCode, CompanyId); + // Logger.LogDebug("OfficeOrderCreate => Invoices => {}", JsonSerializer.Serialize(CompanyInvoices)); + // fetch activities + // CompanyActivities = await CountryActivityRepo.GetActivityList(CompanyId); + // Logger.LogDebug("OfficeOrderCreate => Activities => {}", JsonSerializer.Serialize(CompanyActivities)); + // fetch inventory + // CompanyInventory = await HistoryRepo.GetInventory(CountryCode, CompanyId); + // CompanyInventory = CompanyInventory.OrderBy(x => x.Description).ToList(); + // Logger.LogDebug("OfficeOrderCreate => Inventory => {}", JsonSerializer.Serialize(CompanyInventory)); + // get sales rep info + // SalesRep = await UserRepo.GetUserInfo(Company.SalesRepId); + // Logger.LogDebug("OfficeOrderCreate => SalesRep => {}", JsonSerializer.Serialize(SalesRep)); + // assign salesRep and countryCode to activity + // Activity.SalesRep = _advisorInfo.SalesRep; + // Activity.CountryCode = SalesRep.CountryCode; + // Activity.SalesRepId = Company.SalesRepId; + // assign customer info into activity properties + // 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.BcId = Company.BcId; + // Activity.CompanyId = Company.CompanyId; + // assign activity properties + + Working = false; + + } } \ No newline at end of file diff --git a/Wonky.Client/Pages/CommonReportPrintSummaryPage.razor b/Wonky.Client/Pages/CommonReportPrintSummaryPage.razor index 36a0bf58..5919ad9b 100644 --- a/Wonky.Client/Pages/CommonReportPrintSummaryPage.razor +++ b/Wonky.Client/Pages/CommonReportPrintSummaryPage.razor @@ -39,12 +39,12 @@
- +
- +
- - + + \ No newline at end of file diff --git a/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor b/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor index 72151728..791103b3 100644 --- a/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor +++ b/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor @@ -27,7 +27,10 @@ Rapport Arkiv - @InfoAdvisor.FirstName @InfoAdvisor.LastName - + diff --git a/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor.cs b/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor.cs index c562958e..85f44dab 100644 --- a/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor.cs +++ b/Wonky.Client/Pages/OfficeAdvisorReportListPage.razor.cs @@ -55,6 +55,7 @@ public partial class OfficeAdvisorReportListPage : IDisposable } var reports = await ReportRepo.GetCountryReports(UserId); + if (reports.Any()) ActivityReports = reports.OrderByDescending(x => x.ReportDate).ToList(); } diff --git a/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor b/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor index db22348a..b9f9b37b 100644 --- a/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor +++ b/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor @@ -36,38 +36,40 @@ -
- @if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum)) - { - @Report.ReportData.Name -
-
-

@Report.ReportData.Name

+
+ @*
*@ + @if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum)) + { + @Report.ReportData.Name +
+
+

@Report.ReportData.Name

+
-
-
-
- +
+
+ +
+
+ +
-
- + + + } + else + { +
+
Ingen rapport data
-
- - - } - else - { -
-
Ingen rapport data
-
- } + } + @*
*@
@if (Activities.Any()) { foreach (var item in Activities.Where(item => item.StatusTypeEnum.ToLower() == "order" && item.ProcessStatusEnum.ToLower() == "none")) { - + } -} +} \ No newline at end of file diff --git a/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor b/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor index 92f01909..1a5e86e3 100644 --- a/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor +++ b/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor @@ -88,10 +88,6 @@
-
- - -
diff --git a/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor.cs b/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor.cs index 23e38d7b..4e01c806 100644 --- a/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor.cs +++ b/Wonky.Client/Pages/OfficeCustomerOrderCreatePage.razor.cs @@ -150,9 +150,10 @@ public partial class OfficeCustomerOrderCreatePage : IDisposable Activity.BcId = Company.BcId; Activity.CompanyId = Company.CompanyId; // assign activity properties - Activity.ActivityVisitEnum = "none"; + Activity.ActivityVisitEnum = "office"; Activity.ActivityTypeEnum = "phone"; Activity.ActivityStatusEnum = "order"; + Activity.Express = true; Activity.OurRef = $"TLF:{UserInfo.FirstName}"; Working = false; @@ -244,20 +245,22 @@ public partial class OfficeCustomerOrderCreatePage : IDisposable return; // validate customer address1 // - this is a required input - if (string.IsNullOrWhiteSpace(Activity.Address1)) - { - Toaster.ShowError("Kunde adresse er ufuldstændig."); - return; - } + // --- exclude for office orders + // if (string.IsNullOrWhiteSpace(Activity.Address1)) + // { + // Toaster.ShowError("Kunde adresse er ufuldstændig."); + // return; + // } // validate org number // - this is a required input // - must validate according to country rules. - if (!VatUtils.ValidateFormat(Company.CountryCode, Activity.VatNumber)) - { - Toaster.ShowError("Firma registreringsnummer er ikke korrekt."); - return; - } + // --- exclude for office orders + // if (!VatUtils.ValidateFormat(Company.CountryCode, Activity.VatNumber)) + // { + // Toaster.ShowError("Firma registreringsnummer er ikke korrekt."); + // return; + // } // validate input according to status switch (Activity.ActivityStatusEnum) @@ -271,9 +274,10 @@ public partial class OfficeCustomerOrderCreatePage : IDisposable Toaster.ShowError("Ved bestilling til ny kunde skal telefon nummer angives."); return; // verify email address is a valid address - case "quote" when !Utils.IsValidEmail(Activity.Email): - Toaster.ShowError("Ved tilbud skal en gyldig email adresse angives."); - return; + // --- exclude for office orders + // case "quote" when !Utils.IsValidEmail(Activity.Email): + // Toaster.ShowError("Ved tilbud skal en gyldig email adresse angives."); + // return; } // raise working flag diff --git a/Wonky.Client/Pages/SupervisorAdvisorReportViewPage.razor b/Wonky.Client/Pages/SupervisorAdvisorReportViewPage.razor index d7168970..f104a8e3 100644 --- a/Wonky.Client/Pages/SupervisorAdvisorReportViewPage.razor +++ b/Wonky.Client/Pages/SupervisorAdvisorReportViewPage.razor @@ -42,14 +42,14 @@
- +
- +
- - + + } else { diff --git a/Wonky.Client/Pages/SupervisorDocumentListPage.razor b/Wonky.Client/Pages/SupervisorDocumentListPage.razor index 0756377e..33f8be13 100644 --- a/Wonky.Client/Pages/SupervisorDocumentListPage.razor +++ b/Wonky.Client/Pages/SupervisorDocumentListPage.razor @@ -87,5 +87,5 @@ else } - + diff --git a/Wonky.Client/Pages/SupervisorDocumentListPage.razor.cs b/Wonky.Client/Pages/SupervisorDocumentListPage.razor.cs index 48d7ad39..5a20231e 100644 --- a/Wonky.Client/Pages/SupervisorDocumentListPage.razor.cs +++ b/Wonky.Client/Pages/SupervisorDocumentListPage.razor.cs @@ -40,7 +40,7 @@ public partial class SupervisorDocumentListPage : IDisposable private List Documents { get; set; } = new(); private SupportAdvisorView Advisor { get; set; } = new(); private bool Working { get; set; } = true; - private ConfirmActionModal _confirmDeleteDocuments = new(); + private ConfirmationModal _confirmDeleteDocuments = new(); private string _deleteMessage = ""; protected override async Task OnInitializedAsync() diff --git a/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor b/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor index 3758afca..4c332dcd 100644 --- a/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor +++ b/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor @@ -92,6 +92,6 @@
- + diff --git a/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor.cs b/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor.cs index d5e6348e..222fcd17 100644 --- a/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor.cs +++ b/Wonky.Client/Pages/SupervisorDocumentViewEditPage.razor.cs @@ -46,7 +46,7 @@ public partial class SupervisorDocumentViewEditPage : IDisposable private EditContext FormContext { get; set; } private SupportDocumentEditView Document { get; set; } = new(); private bool Working { get; set; } = true; - private ConfirmActionModal _confirmDeleteDocument = new(); + private ConfirmationModal _confirmDeleteDocument = new(); private string _deleteMessage = ""; diff --git a/Wonky.Client/Wonky.Client.csproj b/Wonky.Client/Wonky.Client.csproj index d67d15cf..866d78f7 100644 --- a/Wonky.Client/Wonky.Client.csproj +++ b/Wonky.Client/Wonky.Client.csproj @@ -3784,6 +3784,12 @@ <_ContentIncludedByDefault Remove="wwwroot\icons\zoom-out.svg" /> <_ContentIncludedByDefault Remove="wwwroot\bootstrap\fonts\bootstrap-icons.woff" /> <_ContentIncludedByDefault Remove="wwwroot\bootstrap\fonts\bootstrap-icons.woff2" /> + <_ContentIncludedByDefault Remove="wwwroot\bootstrap\css\bootstrap-icons.css" /> + <_ContentIncludedByDefault Remove="wwwroot\bootstrap\css\bootstrap-icons.json" /> + <_ContentIncludedByDefault Remove="wwwroot\bootstrap\css\bootstrap-icons.min.css" /> + <_ContentIncludedByDefault Remove="wwwroot\bootstrap\css\bootstrap-icons.scss" /> + <_ContentIncludedByDefault Remove="wwwroot\bootstrap\css\fonts\bootstrap-icons.woff" /> + <_ContentIncludedByDefault Remove="wwwroot\bootstrap\css\fonts\bootstrap-icons.woff2" /> @@ -3800,5 +3806,9 @@ + + + + diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json index 8ff46123..ffcae8f6 100644 --- a/Wonky.Client/wwwroot/appsettings.json +++ b/Wonky.Client/wwwroot/appsettings.json @@ -1,7 +1,7 @@ { "appInfo": { "name": "Wonky Online", - "version": "259.0", + "version": "273.0", "rc": true, "sandBox": true, "image": "grumpy-coder.png", @@ -23,7 +23,7 @@ "assetUrl": "https://files.innotec.dk", "baseUrl": "https://dev.innotec.dk", "countryPriceCatalog": "api/v2/catalog/country", - "countryPublicCatalog": "api/v2/catalog/public", + "countryProductCatalog": "api/v2/catalog/public", "crmCustomers": "api/v2/crm/companies", "crmReports": "api/v2/crm/advisors/reports", "crmActivities": "api/v2/crm/advisors/activities", diff --git a/Wonky.Client/wwwroot/css/app.css b/Wonky.Client/wwwroot/css/app.css index 8a22e5fd..ff0cf0d5 100644 --- a/Wonky.Client/wwwroot/css/app.css +++ b/Wonky.Client/wwwroot/css/app.css @@ -31,6 +31,11 @@ background-color: #a2a2ec; } +.table-* { + background-color: #030303; + color: white; +} + html, body { font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; } diff --git a/Wonky.Client/wwwroot/index.html b/Wonky.Client/wwwroot/index.html index fef2e004..6260ccd0 100644 --- a/Wonky.Client/wwwroot/index.html +++ b/Wonky.Client/wwwroot/index.html @@ -11,8 +11,10 @@ - - + + + + diff --git a/Wonky.Entity/Configuration/ApiConfig.cs b/Wonky.Entity/Configuration/ApiConfig.cs index b5a97692..afeccba0 100644 --- a/Wonky.Entity/Configuration/ApiConfig.cs +++ b/Wonky.Entity/Configuration/ApiConfig.cs @@ -36,7 +36,7 @@ public class ApiConfig /// /// Application uri for public product catalog /// - public string CountryPublicCatalog { get; set; } = ""; + public string CountryProductCatalog { get; set; } = ""; /// /// Application uri for activity request diff --git a/Wonky.Entity/DTO/ReportDto.cs b/Wonky.Entity/DTO/ReportDto.cs index 69d4a425..316e5346 100644 --- a/Wonky.Entity/DTO/ReportDto.cs +++ b/Wonky.Entity/DTO/ReportDto.cs @@ -13,54 +13,26 @@ // along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] // - using System.ComponentModel.DataAnnotations; +using Wonky.Entity.Views; namespace Wonky.Entity.DTO; public class ReportDto { - /// - /// Report name - /// - /// System generated public string Name { get; set; } = ""; - - /// - /// Sales day counter - /// public int SalesDayNumber { get; set; } - - /// - /// Report description - /// - [MaxLength(1000, ErrorMessage = "Du kan højst bruge 1000 tegn")] + + [MaxLength(1000, ErrorMessage = "Du kan højst bruge 1000 tegn")] public string Description { get; set; } = ""; - - /// - /// Supervisor - /// - [MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] + + [MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string SupervisedBy { get; set; } = ""; - - /// - /// Day type enum as string - /// - [Required(ErrorMessage = "Dagtype skal angives")] + + [Required(ErrorMessage = "Dagtype skal angives")] public string DayTypeEnum { get; set; } = ""; - - /// - /// Report timespan - start date time - /// + public string FromDateTime { get; set; } = ""; - - /// - /// Report timespan - end date time - /// public string ToDateTime { get; set; } = ""; - - /// - /// Report figures - /// - public ReportFiguresDto Figures { get; set; } = new(); -} + public ReportFiguresView Figures { get; set; } = new(); +} \ No newline at end of file diff --git a/Wonky.Entity/DTO/ReportInitDto.cs b/Wonky.Entity/DTO/ReportInitDto.cs index 59b5f00a..d63b31ae 100644 --- a/Wonky.Entity/DTO/ReportInitDto.cs +++ b/Wonky.Entity/DTO/ReportInitDto.cs @@ -21,19 +21,7 @@ namespace Wonky.Entity.DTO; public class ReportInitDto { - /// - /// Flag to prevent activity to be added to report - /// public bool ReportClosed { get; set; } - - /// - /// Report figures - /// - public ReportFiguresDto ReportData { get; set; } = new(); - - /// - /// List of activities for report - /// + public ReportFiguresView ReportData { get; set; } = new(); public List ReportItems { get; set; } = new(); - } \ No newline at end of file diff --git a/Wonky.Entity/Views/ReportFiguresView.cs b/Wonky.Entity/Views/ReportFiguresView.cs index bc80bc50..cb8fd2c7 100644 --- a/Wonky.Entity/Views/ReportFiguresView.cs +++ b/Wonky.Entity/Views/ReportFiguresView.cs @@ -14,7 +14,8 @@ public class ReportFiguresView public decimal SasTurnoverMonth { get; set; } public decimal TotalTurnover { get; set; } public decimal TotalTurnoverMonth { get; set; } - + public decimal WebTurnover { get; set; } + public decimal WebTurnoverMonth { get; set; } public int Distance { get; set; } public int DistanceMonth { get; set; } public int DistancePrivate { get; set; } @@ -45,5 +46,7 @@ public class ReportFiguresView public int TotalSaleCount { get; set; } public int TotalSaleCountMonth { get; set; } public int TotalVisitCount { get; set; } - public int TotalVisitCountMonth { get; set; } + public int TotalVisitCountMonth { get; set; } + public int WebCount { get; set; } + public int WebCountMonth { get; set; } } \ No newline at end of file diff --git a/Wonky.Entity/Views/ReportView.cs b/Wonky.Entity/Views/ReportView.cs index 18da5dec..745dd211 100644 --- a/Wonky.Entity/Views/ReportView.cs +++ b/Wonky.Entity/Views/ReportView.cs @@ -19,6 +19,6 @@ namespace Wonky.Entity.Views; public class ReportView { - public ReportData ReportData { get; set; } = new(); + public ReportDataView ReportData { get; set; } = new(); public List ReportItems { get; set; } = new(); } \ No newline at end of file