From f7675bec060b1f03f9f340aa99a380e8c6e97ce5 Mon Sep 17 00:00:00 2001 From: Frede Hundewadt <22748698+fhdk@users.noreply.github.com> Date: Sat, 2 Jul 2022 16:15:28 +0200 Subject: [PATCH] wip - admin print with orders --- Wonky.Client/Components/ActivityButton.razor | 2 +- .../ActivityTableComponent.razor.cs | 2 +- .../AdminReportTableComponent.razor | 8 +- .../AdminReportTableComponent.razor.cs | 5 -- .../Components/AdminUserTableComponent.razor | 54 +++++++------ .../ReportActivityLedgerComponent.razor.cs | 2 +- .../ReportDistanceLedgerComponent.razor | 26 +++--- .../ReportDistanceLedgerComponent.razor.cs | 2 +- .../Components/ReportSummaryComponent.razor | 75 ++++++++++++++--- .../ReportSummaryComponent.razor.cs | 2 +- .../Components/SalesOrderViewComponent.razor | 12 +++ .../HttpRepository/ActivityHttpRepository.cs | 6 +- .../AdminReportHttpRepository.cs | 4 +- .../HttpRepository/IActivityHttpRepository.cs | 2 +- .../IAdminReportHttpRepository.cs | 4 +- .../HttpRepository/IReportHttpRepository.cs | 2 +- .../HttpRepository/ReportHttpRepository.cs | 4 +- Wonky.Client/Pages/ActivityToday.razor | 8 +- Wonky.Client/Pages/ActivityToday.razor.cs | 6 +- Wonky.Client/Pages/ActivityVisitNew.razor | 10 +-- Wonky.Client/Pages/ActivityVisitNew.razor.cs | 13 +-- Wonky.Client/Pages/AdminSalesReportList.razor | 3 +- .../Pages/AdminSalesReportList.razor.cs | 1 - Wonky.Client/Pages/AdminSalesReportView.razor | 59 ++++++++------ .../Pages/AdminSalesReportView.razor.cs | 66 ++++++++++++--- Wonky.Client/Pages/CompanyView.razor | 4 +- Wonky.Client/Pages/CompanyView.razor.cs | 22 ++++- Wonky.Client/Pages/SalesReportNew.razor | 2 +- Wonky.Client/Pages/SalesReportNew.razor.cs | 12 +-- Wonky.Client/Pages/SalesReportView.razor | 65 ++++++++------- Wonky.Client/Pages/SalesReportView.razor.cs | 7 +- Wonky.Client/Pages/TaskItemList.razor | 3 +- Wonky.Client/Pages/TaskItemList.razor.cs | 4 +- Wonky.Client/wwwroot/appsettings.json | 4 +- Wonky.Client/wwwroot/css/report-print.css | 13 ++- Wonky.Client/wwwroot/robots.txt | 2 + Wonky.Entity/DTO/ReportInitDto.cs | 6 +- Wonky.Entity/Views/ActivityCompanyView.cs | 7 -- Wonky.Entity/Views/ActivityListReportView.cs | 7 -- Wonky.Entity/Views/ReportActivityInfoView.cs | 7 ++ ...eportClosedView.cs => ReportClosedView.cs} | 0 ...esReportDataViewModel.cs => ReportData.cs} | 2 +- Wonky.Entity/Views/ReportItemCustomer.cs | 37 +++++++++ Wonky.Entity/Views/ReportItemLine.cs | 29 +++++++ Wonky.Entity/Views/ReportItemListView.cs | 7 ++ ...ivityListItemView.cs => ReportItemView.cs} | 80 +++++++++---------- Wonky.Entity/Views/ReportView.cs | 7 ++ Wonky.Entity/Views/SalesReportViewModel.cs | 7 -- 48 files changed, 459 insertions(+), 253 deletions(-) create mode 100644 Wonky.Client/Components/SalesOrderViewComponent.razor create mode 100644 Wonky.Client/wwwroot/robots.txt delete mode 100644 Wonky.Entity/Views/ActivityCompanyView.cs delete mode 100644 Wonky.Entity/Views/ActivityListReportView.cs create mode 100644 Wonky.Entity/Views/ReportActivityInfoView.cs rename Wonky.Entity/Views/{SalesReportClosedView.cs => ReportClosedView.cs} (100%) rename Wonky.Entity/Views/{SalesReportDataViewModel.cs => ReportData.cs} (98%) create mode 100644 Wonky.Entity/Views/ReportItemCustomer.cs create mode 100644 Wonky.Entity/Views/ReportItemLine.cs create mode 100644 Wonky.Entity/Views/ReportItemListView.cs rename Wonky.Entity/Views/{ActivityListItemView.cs => ReportItemView.cs} (65%) create mode 100644 Wonky.Entity/Views/ReportView.cs delete mode 100644 Wonky.Entity/Views/SalesReportViewModel.cs diff --git a/Wonky.Client/Components/ActivityButton.razor b/Wonky.Client/Components/ActivityButton.razor index d4c963c1..f7a3f101 100644 --- a/Wonky.Client/Components/ActivityButton.razor +++ b/Wonky.Client/Components/ActivityButton.razor @@ -17,7 +17,7 @@ @if (Enabled == 1) { - @ButtonText + @ButtonText } else { diff --git a/Wonky.Client/Components/ActivityTableComponent.razor.cs b/Wonky.Client/Components/ActivityTableComponent.razor.cs index d55a89f2..a04e7fb9 100644 --- a/Wonky.Client/Components/ActivityTableComponent.razor.cs +++ b/Wonky.Client/Components/ActivityTableComponent.razor.cs @@ -5,5 +5,5 @@ namespace Wonky.Client.Components; public partial class ActivityTableComponent { - [Parameter] public List Activities { get; set; } + [Parameter] public List Activities { get; set; } } \ No newline at end of file diff --git a/Wonky.Client/Components/AdminReportTableComponent.razor b/Wonky.Client/Components/AdminReportTableComponent.razor index 1a23e87d..cb85fbdb 100644 --- a/Wonky.Client/Components/AdminReportTableComponent.razor +++ b/Wonky.Client/Components/AdminReportTableComponent.razor @@ -1,3 +1,5 @@ +@using System.Globalization + @if (ReportList != null) {
@@ -49,14 +51,14 @@ } }
-
+
@(report.DayTypeEnum == "Sales" ? report.FromDateTime.Split(" ")[1] : report.FromDateTime.Split(" ")[0])
-
+
@(report.DayTypeEnum == "Sales" ? report.ToDateTime.Split(" ")[1] : report.ToDateTime.Split(" ")[0])
- @report.Turnover + @report.Turnover.ToString(CultureInfo.CurrentUICulture)
diff --git a/Wonky.Client/Components/AdminReportTableComponent.razor.cs b/Wonky.Client/Components/AdminReportTableComponent.razor.cs index ba7bc525..38a323fd 100644 --- a/Wonky.Client/Components/AdminReportTableComponent.razor.cs +++ b/Wonky.Client/Components/AdminReportTableComponent.razor.cs @@ -8,9 +8,4 @@ public partial class AdminReportTableComponent [Parameter] public List ReportList { get; set; } [Parameter] public string UserId { get; set; } = ""; [Parameter] public string CountryCode { get; set; } = ""; - - protected override void OnParametersSet() - { - base.OnParametersSet(); - } } \ No newline at end of file diff --git a/Wonky.Client/Components/AdminUserTableComponent.razor b/Wonky.Client/Components/AdminUserTableComponent.razor index 192f54fd..05d54bcb 100644 --- a/Wonky.Client/Components/AdminUserTableComponent.razor +++ b/Wonky.Client/Components/AdminUserTableComponent.razor @@ -17,35 +17,37 @@ @if (UserList.Any()) { - - - - - - - - - - +
+
+
+
+ Navn +
+
+ Telefon +
+
+ Email +
+
+
@foreach (var user in UserList) { -
- - - - - + +
+
+ @user.FullName +
+
+ @user.PhoneNumber +
+
+ @user.Email +
+
+
} - -
- Land - - Navn - - Telefon - - Email -
@user.CountryCode@user.FullName@user.PhoneNumber@user.Email
+
} else { diff --git a/Wonky.Client/Components/ReportActivityLedgerComponent.razor.cs b/Wonky.Client/Components/ReportActivityLedgerComponent.razor.cs index 5f5633fc..72aef03c 100644 --- a/Wonky.Client/Components/ReportActivityLedgerComponent.razor.cs +++ b/Wonky.Client/Components/ReportActivityLedgerComponent.razor.cs @@ -6,5 +6,5 @@ namespace Wonky.Client.Components; public partial class ReportActivityLedgerComponent { [Parameter] - public SalesReportDataViewModel ReportData { get; set; } + public ReportData ReportData { get; set; } } \ No newline at end of file diff --git a/Wonky.Client/Components/ReportDistanceLedgerComponent.razor b/Wonky.Client/Components/ReportDistanceLedgerComponent.razor index 16f239e0..3ec53550 100644 --- a/Wonky.Client/Components/ReportDistanceLedgerComponent.razor +++ b/Wonky.Client/Components/ReportDistanceLedgerComponent.razor @@ -15,7 +15,7 @@ // *@ - +
- - + + - - + + - - + + - - + + - - + + - - + +
@@ -25,28 +25,28 @@
Km Aften@ReportData.KmEveningAften@ReportData.KmEvening
Km Morgen@ReportData.KmMorningMorgen@ReportData.KmMorning
Km Kørt Dag@ReportData.DistanceKørt Dag@ReportData.Distance
Km Kørt Md.@ReportData.DistanceMonthKørt Md.@ReportData.DistanceMonth
Km Privat@ReportData.DistancePrivatePrivat@ReportData.DistancePrivate
Km Privat Md.@ReportData.DistancePrivateMonthPrivat Md.@ReportData.DistancePrivateMonth
diff --git a/Wonky.Client/Components/ReportDistanceLedgerComponent.razor.cs b/Wonky.Client/Components/ReportDistanceLedgerComponent.razor.cs index 7b451820..88059d73 100644 --- a/Wonky.Client/Components/ReportDistanceLedgerComponent.razor.cs +++ b/Wonky.Client/Components/ReportDistanceLedgerComponent.razor.cs @@ -6,6 +6,6 @@ namespace Wonky.Client.Components; public partial class ReportDistanceLedgerComponent { [Parameter] - public SalesReportDataViewModel ReportData { get; set; } + public ReportData ReportData { get; set; } } \ No newline at end of file diff --git a/Wonky.Client/Components/ReportSummaryComponent.razor b/Wonky.Client/Components/ReportSummaryComponent.razor index 3ee84d57..5a1d3b84 100644 --- a/Wonky.Client/Components/ReportSummaryComponent.razor +++ b/Wonky.Client/Components/ReportSummaryComponent.razor @@ -18,7 +18,7 @@ - @@ -26,23 +26,26 @@ - + - + - - + + + + + + -
+ Rapport
Beskrivelse@ReportData.Description@ReportData.Description
Supervisor@ReportData.SupervisedBy@ReportData.SupervisedBy
Dagtype + Indhold @{ switch (ReportData.DayTypeEnum) { case "Sales": - Salgsdag: @ReportData.SalesDayNumber + Salgsdag @ReportData.SalesDayNumber break; case "SickLeave": - Sygdom + Sygefravær + break; + case "Leave": + Aftalt frihed break; case "Office": Kontordag @@ -50,13 +53,65 @@ case "Meeting": Salgsmøde break; - case "Leave": - Ferie + default: + + break; + } + } +
Fra/Til + @{ + switch (ReportData.DayTypeEnum) + { + case "Sales": + @(ReportData.FromDateTime.Split(" ")[1]) + break; + case "SickLeave": + @(ReportData.FromDateTime.Split(" ")[0]) + break; + case "Leave": + @(ReportData.FromDateTime.Split(" ")[0]) + break; + case "Office": + + break; + case "Meeting": + + break; + default: + + break; + } + } + + @{ + switch (ReportData.DayTypeEnum) + { + case "Sales": + @(ReportData.ToDateTime.Split(" ")[1]) + break; + case "SickLeave": + @(ReportData.ToDateTime.Split(" ")[0]) + break; + case "Leave": + @(ReportData.ToDateTime.Split(" ")[0]) + break; + case "Office": + + break; + case "Meeting": + + break; + default: + break; } }
\ No newline at end of file diff --git a/Wonky.Client/Components/ReportSummaryComponent.razor.cs b/Wonky.Client/Components/ReportSummaryComponent.razor.cs index b8f26d05..f509e371 100644 --- a/Wonky.Client/Components/ReportSummaryComponent.razor.cs +++ b/Wonky.Client/Components/ReportSummaryComponent.razor.cs @@ -6,6 +6,6 @@ namespace Wonky.Client.Components; public partial class ReportSummaryComponent { [Parameter] - public SalesReportDataViewModel ReportData { get; set; } + public ReportData ReportData { get; set; } } \ No newline at end of file diff --git a/Wonky.Client/Components/SalesOrderViewComponent.razor b/Wonky.Client/Components/SalesOrderViewComponent.razor new file mode 100644 index 00000000..3c1fcfa9 --- /dev/null +++ b/Wonky.Client/Components/SalesOrderViewComponent.razor @@ -0,0 +1,12 @@ +@using Wonky.Entity.Views + +
+ +
+ +@code{ + + [Parameter] + public ReportItemView ReportItem { get; set; } = new(); + +} \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/ActivityHttpRepository.cs b/Wonky.Client/HttpRepository/ActivityHttpRepository.cs index 6761a891..3c70f13e 100644 --- a/Wonky.Client/HttpRepository/ActivityHttpRepository.cs +++ b/Wonky.Client/HttpRepository/ActivityHttpRepository.cs @@ -54,14 +54,14 @@ public class ActivityHttpRepository : IActivityHttpRepository _apiConfig = configuration.Value; } - public async Task GetActivities(string activityDate) + public async Task GetActivities(string activityDate) { var response = await _client .GetAsync($"{_apiConfig.ActivityUri}/date/{activityDate}"); var content = await response.Content.ReadAsStringAsync(); return string.IsNullOrWhiteSpace(content) - ? new ActivityListReportView() - : JsonSerializer.Deserialize(content, _options); + ? new ReportItemListView() + : JsonSerializer.Deserialize(content, _options); } public async Task CreateActivity(ActivityDto model) diff --git a/Wonky.Client/HttpRepository/AdminReportHttpRepository.cs b/Wonky.Client/HttpRepository/AdminReportHttpRepository.cs index 34d7b6cb..c6e706e5 100644 --- a/Wonky.Client/HttpRepository/AdminReportHttpRepository.cs +++ b/Wonky.Client/HttpRepository/AdminReportHttpRepository.cs @@ -35,9 +35,9 @@ public class AdminReportHttpRepository : IAdminReportHttpRepository return await _client.GetFromJsonAsync>($"{_apiConfig.AdminAdviserUri}/{userId}/reports"); } - public async Task GetReport(string userId, string workDate) + public async Task GetReport(string userId, string workDate) { - return await _client.GetFromJsonAsync($"{_apiConfig.AdminAdviserUri}/{userId}/reports/{workDate}"); + return await _client.GetFromJsonAsync($"{_apiConfig.AdminAdviserUri}/{userId}/reports/{workDate}"); } } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/IActivityHttpRepository.cs b/Wonky.Client/HttpRepository/IActivityHttpRepository.cs index d74ebed0..a701099a 100644 --- a/Wonky.Client/HttpRepository/IActivityHttpRepository.cs +++ b/Wonky.Client/HttpRepository/IActivityHttpRepository.cs @@ -27,5 +27,5 @@ public interface IActivityHttpRepository Task GetActivity(string id); Task CreateActivity(ActivityDto model); Task AcceptOffer(string id); - Task GetActivities(string activityDate); + Task GetActivities(string activityDate); } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/IAdminReportHttpRepository.cs b/Wonky.Client/HttpRepository/IAdminReportHttpRepository.cs index 8c7362e4..545c5280 100644 --- a/Wonky.Client/HttpRepository/IAdminReportHttpRepository.cs +++ b/Wonky.Client/HttpRepository/IAdminReportHttpRepository.cs @@ -1,5 +1,3 @@ -using Wonky.Client.Pages; -using Wonky.Entity.DTO; using Wonky.Entity.Views; namespace Wonky.Client.HttpRepository; @@ -7,5 +5,5 @@ namespace Wonky.Client.HttpRepository; public interface IAdminReportHttpRepository { Task> GetReports(string userId); - Task GetReport(string userId, string workDate); + Task GetReport(string userId, string workDate); } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/IReportHttpRepository.cs b/Wonky.Client/HttpRepository/IReportHttpRepository.cs index 9271fb5b..fa26df91 100644 --- a/Wonky.Client/HttpRepository/IReportHttpRepository.cs +++ b/Wonky.Client/HttpRepository/IReportHttpRepository.cs @@ -8,7 +8,7 @@ public interface IReportHttpRepository { Task ReportExist(string workDate); Task> GetReports(); - Task GetReport(string workDate); + Task GetReport(string workDate); Task InitializeReportData(string workDate); Task PostReport(string workDate, ReportDto reportDto); } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/ReportHttpRepository.cs b/Wonky.Client/HttpRepository/ReportHttpRepository.cs index 03156da9..fe56d773 100644 --- a/Wonky.Client/HttpRepository/ReportHttpRepository.cs +++ b/Wonky.Client/HttpRepository/ReportHttpRepository.cs @@ -42,9 +42,9 @@ public class ReportHttpRepository :IReportHttpRepository return result.ReportClosed; } - public async Task GetReport(string workDate) + public async Task GetReport(string workDate) { - return await _client.GetFromJsonAsync($"{_apiConfig.ReportUri}/{workDate}"); + return await _client.GetFromJsonAsync($"{_apiConfig.ReportUri}/{workDate}"); } public async Task InitializeReportData(string workDate) diff --git a/Wonky.Client/Pages/ActivityToday.razor b/Wonky.Client/Pages/ActivityToday.razor index 016d3757..3ea1aaea 100644 --- a/Wonky.Client/Pages/ActivityToday.razor +++ b/Wonky.Client/Pages/ActivityToday.razor @@ -23,13 +23,13 @@
-
+

@(string.IsNullOrWhiteSpace(_workDate) ? "" : $"{DateTime.Parse(_workDate).ToLongDateString()}")

-
+
-
+
@if (_reportExist) { RAPPORT @@ -44,5 +44,5 @@
- +
diff --git a/Wonky.Client/Pages/ActivityToday.razor.cs b/Wonky.Client/Pages/ActivityToday.razor.cs index 930d4932..bc6a1acf 100644 --- a/Wonky.Client/Pages/ActivityToday.razor.cs +++ b/Wonky.Client/Pages/ActivityToday.razor.cs @@ -17,7 +17,7 @@ public partial class ActivityToday [Inject] private IActivityHttpRepository _activityRepo { get; set; } [Inject] private IReportHttpRepository _reportRepo { get; set; } [Inject] private IToastService _toast { get; set; } - private ActivityListReportView ReportView { get; set; } = new(); + private ReportItemListView ReportItemListView { get; set; } = new(); private Preferences _prefs { get; set; } = new(); private string _workDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}"; private bool _reportExist = false; @@ -38,8 +38,8 @@ public partial class ActivityToday { _toast.ShowInfo("Vent nogle sekunder for data"); _workDate = workDate; - ReportView = new ActivityListReportView(); - ReportView = await _activityRepo.GetActivities(workDate); + ReportItemListView = new ReportItemListView(); + ReportItemListView = await _activityRepo.GetActivities(workDate); } public void Dispose() diff --git a/Wonky.Client/Pages/ActivityVisitNew.razor b/Wonky.Client/Pages/ActivityVisitNew.razor index 136528ef..04f284d8 100644 --- a/Wonky.Client/Pages/ActivityVisitNew.razor +++ b/Wonky.Client/Pages/ActivityVisitNew.razor @@ -27,7 +27,7 @@

@_workDate.ToLongDateString()

- +
@@ -187,7 +187,7 @@ Antal Pris Rabat - SAS + SAS Varenr. @@ -203,12 +203,12 @@ - + @_selectedItem.Sku - + @@ -268,7 +268,7 @@
  • @rate.Quantity
    @rate.Rate
    - + Vælg
  • diff --git a/Wonky.Client/Pages/ActivityVisitNew.razor.cs b/Wonky.Client/Pages/ActivityVisitNew.razor.cs index 5add12ee..e0cfdcef 100644 --- a/Wonky.Client/Pages/ActivityVisitNew.razor.cs +++ b/Wonky.Client/Pages/ActivityVisitNew.razor.cs @@ -71,6 +71,7 @@ public partial class ActivityVisitNew : IDisposable private bool _reportClosdd { get; set; } = false; private UserInfoView _ux { get; set; } = new(); private DateTime _workDate { get; set; } = DateTime.Now; + private string _selectedDate { get; set; } = ""; protected override async Task OnParametersSetAsync() { @@ -78,11 +79,12 @@ public partial class ActivityVisitNew : IDisposable if (!string.IsNullOrWhiteSpace(_prefs.WorkDate)) _workDate = DateTime.Parse(_prefs.WorkDate); + _selectedDate = $"{_workDate:yyyy-MM-dd}"; // raise flag if report is closed - _reportClosdd = await _reportRepo.ReportExist($"{_workDate:yyyy-MM-dd}"); + _reportClosdd = await _reportRepo.ReportExist(_selectedDate); if(_reportClosdd) - _navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}"); + _navigator.NavigateTo($"/sales-reports/view/{_selectedDate}"); } @@ -138,10 +140,9 @@ public partial class ActivityVisitNew : IDisposable private void SetWorkDate(string workDate) { - Console.WriteLine($"SetWorkDate => {workDate}"); - _logger.LogInformation("WorkDateComponent.OnChanged(SetWorkDate(workDate)) => {workDate}", workDate); - _workDate = DateTime.Parse(workDate); - _draft.ActivityDate = workDate; + _selectedDate = workDate; + _workDate = DateTime.Parse(_selectedDate); + _draft.ActivityDate = _selectedDate; } private async Task CreateActivity() diff --git a/Wonky.Client/Pages/AdminSalesReportList.razor b/Wonky.Client/Pages/AdminSalesReportList.razor index a38a32d0..424501c3 100644 --- a/Wonky.Client/Pages/AdminSalesReportList.razor +++ b/Wonky.Client/Pages/AdminSalesReportList.razor @@ -18,6 +18,7 @@ @using Microsoft.AspNetCore.Authorization @attribute [Authorize(Roles = "Admin")] @page "/admin/users/advisers/{CountryCode}/{UserId}/reports" +
    @@ -27,6 +28,6 @@
    - +
    diff --git a/Wonky.Client/Pages/AdminSalesReportList.razor.cs b/Wonky.Client/Pages/AdminSalesReportList.razor.cs index 296c514c..277964b6 100644 --- a/Wonky.Client/Pages/AdminSalesReportList.razor.cs +++ b/Wonky.Client/Pages/AdminSalesReportList.razor.cs @@ -12,7 +12,6 @@ public partial class AdminSalesReportList : IDisposable [Parameter] public string CountryCode { get; set; } = ""; [Inject] private IAdminReportHttpRepository _reportRepo { get; set; } [Inject] private HttpInterceptorService _interceptor { get; set; } - private List _reports { get; set; } protected override async Task OnInitializedAsync() diff --git a/Wonky.Client/Pages/AdminSalesReportView.razor b/Wonky.Client/Pages/AdminSalesReportView.razor index ba6bad02..203bd3e5 100644 --- a/Wonky.Client/Pages/AdminSalesReportView.razor +++ b/Wonky.Client/Pages/AdminSalesReportView.razor @@ -20,43 +20,50 @@ @page "/admin/users/advisers/{CountryCode}/{UserId}/reports/{ReportDate}" @attribute [Authorize(Roles = "Admin")] -@_report.ReportData.Name - -
    -
    +@if (SalesReport != null) +{ + @SalesReport.ReportData.Name + +
    -
    +
    @if (!string.IsNullOrWhiteSpace(ReportDate)) {

    @DateTime.Parse(ReportDate).ToLongDateString()

    }
    -
    +
    + +
    +
    -
    -

    @_report.ReportData.Name

    +
    +

    @SalesReport.ReportData.Name

    -
    -
    -
    - -
    -
    - -
    +
    +
    +
    -
    -
    - -
    -
    -
    -
    - -
    +
    +
    -
    \ No newline at end of file +
    +
    + +
    +
    +
    +
    + +
    +
    +} +else +{ + +} + diff --git a/Wonky.Client/Pages/AdminSalesReportView.razor.cs b/Wonky.Client/Pages/AdminSalesReportView.razor.cs index c23d1593..1585fbb8 100644 --- a/Wonky.Client/Pages/AdminSalesReportView.razor.cs +++ b/Wonky.Client/Pages/AdminSalesReportView.razor.cs @@ -1,32 +1,74 @@ +using System.Text.Json; using Microsoft.AspNetCore.Components; +using Wonky.Client.HttpInterceptors; using Wonky.Client.HttpRepository; -using Wonky.Entity.DTO; using Wonky.Entity.Views; namespace Wonky.Client.Pages; -public partial class AdminSalesReportView +public partial class AdminSalesReportView : IDisposable { - [Parameter] public string ReportDate { get; set; } = ""; - [Parameter] public string UserId { get; set; } = ""; + /// + /// Country code from url parameter + /// [Parameter] public string CountryCode { get; set; } = ""; + /// + /// Report date from url parameter + /// + [Parameter] public string ReportDate { get; set; } = ""; + /// + /// User entity Id from url parameter + /// + [Parameter] public string UserId { get; set; } = ""; + /// + /// Injected interceptor service + /// + [Inject] private HttpInterceptorService _interceptor { get; set; } + /// + /// Injected administrative report http repo + /// [Inject] private IAdminReportHttpRepository _reportRepo { get; set; } - private SalesReportViewModel _report { get; set; } = new(); - + /// + /// Navigation Manager + /// + [Inject] private NavigationManager _navigator { get; set; } + /// + /// Report to render + /// + private ReportView SalesReport { get; set; } + protected override async Task OnParametersSetAsync() { + _interceptor.RegisterEvent(); + _interceptor.RegisterBeforeSendEvent(); + await GetReport(ReportDate); } + /// + /// Work date component event handler + /// + /// private async Task GetReport(string workDate) { - ReportDate = workDate; - _report = new SalesReportViewModel(); - _report = await GetUserReport(UserId, workDate); + if(workDate != ReportDate) + _navigator.NavigateTo($"/admin/users/advisers/{CountryCode}/{UserId}/reports/{workDate}"); + SalesReport = new ReportView(); + SalesReport = await GetUserReport(UserId, workDate); + } + /// + /// Get report for user with entity Id for work date + /// + /// + /// + /// + private async Task GetUserReport(string userId, string workDate) + { + return SalesReport = await _reportRepo.GetReport(userId, workDate); } - private async Task GetUserReport(string userId, string workDate) + public void Dispose() { - return _report = await _reportRepo.GetReport(userId, workDate); + _interceptor.DisposeEvent(); } -} \ No newline at end of file +} diff --git a/Wonky.Client/Pages/CompanyView.razor b/Wonky.Client/Pages/CompanyView.razor index 7c7aad8a..278f4bc5 100644 --- a/Wonky.Client/Pages/CompanyView.razor +++ b/Wonky.Client/Pages/CompanyView.razor @@ -163,14 +163,14 @@ - + Dato kan ikke vær før sidste besøg Besøgt - + diff --git a/Wonky.Client/Pages/CompanyView.razor.cs b/Wonky.Client/Pages/CompanyView.razor.cs index 35c3e25e..33dbc79f 100644 --- a/Wonky.Client/Pages/CompanyView.razor.cs +++ b/Wonky.Client/Pages/CompanyView.razor.cs @@ -58,7 +58,7 @@ public partial class CompanyView : IDisposable private string _orgVat; private string countryCode = "dk"; private string _visitState = "the-ugly"; - private int _enableActivity = 0; + private int _enableActivity = 1; private bool _hideButtons = false; private string _actionLink = ""; @@ -70,6 +70,7 @@ public partial class CompanyView : IDisposable private async Task RefreshHistory() { _toast.ShowInfo("Vent mens data opdateres ..."); + _toast.ShowInfo("Der kan gå nogle minuutter inden data er klar ..."); var ts = await _historyRepo.UpdateProductHistory(_company.CompanyId, $"{DateTime.Parse(_company.HistorySync):yyyy-MM-dd}");; _company.HistorySync = ts.Replace("\"", ""); } @@ -81,6 +82,9 @@ public partial class CompanyView : IDisposable _interceptor.RegisterBeforeSendEvent(); _company = await _companyRepo.GetCompanyById(CompanyId); + + _logger.LogDebug("CompanyView => _company <= {_company}", JsonSerializer.Serialize(_company, _options)); + _orgVat = _company.VatNumber; _company.CountryCode = ux.CountryCode.ToLower(); @@ -96,11 +100,18 @@ public partial class CompanyView : IDisposable _lastVisit = DateTime.Parse(_company.LastVisit); _nextVisit = DateTime.Parse(_company.NextVisit); + if (_lastVisit.Year < 2020) + { + _lastVisit = DateTime.Parse("2020-01-01"); + } if (!_company.ValidDateSpan()) _nextVisit = _lastVisit.AddDays(_company.Interval * 7); + _visitState = Utils.GetVisitState($"{_nextVisit:yyyy-MM-dd}"); + _actionLink = $"/companies/{CompanyId}/activities/new"; + if(_company.HasFolded == 1) { _hasFolded = true; @@ -127,7 +138,7 @@ public partial class CompanyView : IDisposable _company.LastVisit = $"{_lastVisit:yyyy-MM-dd}"; _company.NextVisit = $"{_nextVisit:yyyy-MM-dd}"; - if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber) || !_company.ValidDateSpan()) + if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber)) { _formInvalid = true; } @@ -139,7 +150,7 @@ public partial class CompanyView : IDisposable } private void ValidationChanged(object sender, ValidationStateChangedEventArgs e) { - _formInvalid = true; + _formInvalid = false; _editContext.OnFieldChanged -= HandleFieldChanged; _editContext.OnValidationStateChanged -= ValidationChanged; @@ -172,10 +183,13 @@ public partial class CompanyView : IDisposable var success = await _companyRepo.UpdateCompany(CompanyId, _company ); if (success) { - _toast.ShowSuccess("Kunde er opdateret"); + _toast.ShowSuccess("Opdatering er afsendt. Der nogle minutter inden data er opdateret."); _company = await _companyRepo.GetCompanyById(_company.CompanyId); + _company.ValidVat = 1; + StateHasChanged(); } + _hideButtons = false; } diff --git a/Wonky.Client/Pages/SalesReportNew.razor b/Wonky.Client/Pages/SalesReportNew.razor index 7c61a175..7866c05d 100644 --- a/Wonky.Client/Pages/SalesReportNew.razor +++ b/Wonky.Client/Pages/SalesReportNew.razor @@ -28,7 +28,7 @@

    @(_workDate.ToLongDateString())

    - +
    @if (_working) diff --git a/Wonky.Client/Pages/SalesReportNew.razor.cs b/Wonky.Client/Pages/SalesReportNew.razor.cs index b615d2b4..97a03d33 100644 --- a/Wonky.Client/Pages/SalesReportNew.razor.cs +++ b/Wonky.Client/Pages/SalesReportNew.razor.cs @@ -40,7 +40,7 @@ public partial class SalesReportNew : IDisposable [Inject] private IToastService _toast { get; set; } private EditContext _editContext { get; set; } private ReportDto _report { get; set; } = new(); - private List _activities { get; set; } = new(); + private List _activities { get; set; } = new(); private ReportFiguresDto _init { get; set; } private Preferences _prefs { get; set; } = new(); private bool _formInvalid = true; @@ -152,7 +152,7 @@ public partial class SalesReportNew : IDisposable _noFigures = true; _report.Figures = new ReportFiguresDto(); _init = new ReportFiguresDto(); - _activities = new List(); + _activities = new List(); _report.Figures.KmEvening = 0; _report.Figures.KmMorning = 0; _report.Figures.Distance = 0; @@ -167,12 +167,12 @@ public partial class SalesReportNew : IDisposable { _working = true; var data = await _reportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}"); - if(data.Closed) + if(data.ReportClosed) _navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}"); _noFigures = false; - _report.Figures = data.Figures; - _init = data.Figures; - _activities = data.Activities; + _report.Figures = data.ReportData; + _init = data.ReportData; + _activities = data.ReportItems; _working = false; } diff --git a/Wonky.Client/Pages/SalesReportView.razor b/Wonky.Client/Pages/SalesReportView.razor index 9c7c6e34..b6662fd3 100644 --- a/Wonky.Client/Pages/SalesReportView.razor +++ b/Wonky.Client/Pages/SalesReportView.razor @@ -22,36 +22,41 @@ @_report.ReportData.Name -
    -
    -
    -
    - @if (!string.IsNullOrWhiteSpace(ReportDate)) - { -

    @DateTime.Parse(ReportDate).ToLongDateString()

    - } -
    -
    - -
    -
    - -
    -
    -

    @_report.ReportData.Name

    -
    +
    +
    +
    + @if (!string.IsNullOrWhiteSpace(ReportDate)) + { +

    @DateTime.Parse(ReportDate).ToLongDateString()

    + } +
    +
    + +
    +
    + +
    +
    +

    @_report.ReportData.Name

    -
    -
    -
    - -
    -
    - -
    -
    - - +
    +
    +
    +
    -
    \ No newline at end of file +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + diff --git a/Wonky.Client/Pages/SalesReportView.razor.cs b/Wonky.Client/Pages/SalesReportView.razor.cs index 902cac48..2a1f5390 100644 --- a/Wonky.Client/Pages/SalesReportView.razor.cs +++ b/Wonky.Client/Pages/SalesReportView.razor.cs @@ -9,7 +9,8 @@ public partial class SalesReportView { [Parameter] public string ReportDate { get; set; } [Inject] private IReportHttpRepository _reportRepo { get; set; } - private SalesReportViewModel _report { get; set; } = new(); + [Inject] private NavigationManager _navigator { get; set; } + private ReportView _report { get; set; } = new(); protected override async Task OnInitializedAsync() { @@ -21,8 +22,8 @@ public partial class SalesReportView private async Task GetReport(string workDate) { - ReportDate = workDate; - _report = new SalesReportViewModel(); + if(workDate != ReportDate) + _navigator.NavigateTo($"/sales-reports/view/{workDate}"); _report = await _reportRepo.GetReport(workDate); } } \ No newline at end of file diff --git a/Wonky.Client/Pages/TaskItemList.razor b/Wonky.Client/Pages/TaskItemList.razor index f3504cc7..35edb406 100644 --- a/Wonky.Client/Pages/TaskItemList.razor +++ b/Wonky.Client/Pages/TaskItemList.razor @@ -1,3 +1,4 @@ +@using Wonky.Client.Components @page "/task-items"
    @@ -7,7 +8,7 @@

    @(string.IsNullOrWhiteSpace(_workDate) ? "" : $"{DateTime.Parse(_workDate).ToLongDateString()}")

    - +
    NY OPGAVE diff --git a/Wonky.Client/Pages/TaskItemList.razor.cs b/Wonky.Client/Pages/TaskItemList.razor.cs index 79871f21..5fef5904 100644 --- a/Wonky.Client/Pages/TaskItemList.razor.cs +++ b/Wonky.Client/Pages/TaskItemList.razor.cs @@ -28,10 +28,10 @@ public partial class TaskItemList : IDisposable _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); - await GetActivities(_workDate); + await GetTaskItems(_workDate); } - private async Task GetActivities(string workDate) + private async Task GetTaskItems(string workDate) { _toast.ShowInfo("Vent nogle sekunder for data"); _workDate = workDate; diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json index 2669e84f..bc0bfa35 100644 --- a/Wonky.Client/wwwroot/appsettings.json +++ b/Wonky.Client/wwwroot/appsettings.json @@ -1,12 +1,12 @@ { "appInfo": { "name": "Wonky Client", - "version": "0.8.83", + "version": "0.8.101", "isBeta": true, "image": "grumpy-coder.png" }, "apiConfig": { - "innoBaseUrl": "https://dev.innotec.dk", + "innoBaseUrl": "https://staging.innotec.dk", "glsTrackUrl": "https://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DK01/DA/5004.htm?txtAction=71000&txtRefNo=", "glsId": "", "virkUrl": "api/v2/services/virk", diff --git a/Wonky.Client/wwwroot/css/report-print.css b/Wonky.Client/wwwroot/css/report-print.css index 10c0bec2..f2ae7ba8 100644 --- a/Wonky.Client/wwwroot/css/report-print.css +++ b/Wonky.Client/wwwroot/css/report-print.css @@ -16,7 +16,18 @@ } .page { font-size: 10px; - + border: initial; + border-radius: initial; + box-shadow: initial; + margin: 0; + min-height: initial; + page-break-after: always; + width: initial; + -webkit-print-color-adjust: exact; + color-adjust: exact; + } + .report-item { + font-size: 10px; border: initial; border-radius: initial; box-shadow: initial; diff --git a/Wonky.Client/wwwroot/robots.txt b/Wonky.Client/wwwroot/robots.txt new file mode 100644 index 00000000..77470cb3 --- /dev/null +++ b/Wonky.Client/wwwroot/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/Wonky.Entity/DTO/ReportInitDto.cs b/Wonky.Entity/DTO/ReportInitDto.cs index 298b5870..8ae70c45 100644 --- a/Wonky.Entity/DTO/ReportInitDto.cs +++ b/Wonky.Entity/DTO/ReportInitDto.cs @@ -8,16 +8,16 @@ public class ReportInitDto /// /// Flag to prevent activity to be added to report /// - public bool Closed { get; set; } + public bool ReportClosed { get; set; } /// /// Report figures /// - public ReportFiguresDto Figures { get; set; } + public ReportFiguresDto ReportData { get; set; } /// /// List of activities for report /// - public List Activities { get; set; } + public List ReportItems { get; set; } } \ No newline at end of file diff --git a/Wonky.Entity/Views/ActivityCompanyView.cs b/Wonky.Entity/Views/ActivityCompanyView.cs deleted file mode 100644 index c5decc72..00000000 --- a/Wonky.Entity/Views/ActivityCompanyView.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Wonky.Entity.Views; - -public class ActivityCompanyView -{ - public string Name { get; set; } = ""; - public string City { get; set; } = ""; -} \ No newline at end of file diff --git a/Wonky.Entity/Views/ActivityListReportView.cs b/Wonky.Entity/Views/ActivityListReportView.cs deleted file mode 100644 index d9688ee6..00000000 --- a/Wonky.Entity/Views/ActivityListReportView.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Wonky.Entity.Views; - -public class ActivityListReportView -{ - public bool ReportClosed { get; set; } - public List Activities { get; set; } = new(); -} \ No newline at end of file diff --git a/Wonky.Entity/Views/ReportActivityInfoView.cs b/Wonky.Entity/Views/ReportActivityInfoView.cs new file mode 100644 index 00000000..977c7f85 --- /dev/null +++ b/Wonky.Entity/Views/ReportActivityInfoView.cs @@ -0,0 +1,7 @@ +namespace Wonky.Entity.Views; + +public class ReportActivityInfoView +{ + public bool ReportClosed { get; set; } + public List ReportItems { get; set; } = new(); +} \ No newline at end of file diff --git a/Wonky.Entity/Views/SalesReportClosedView.cs b/Wonky.Entity/Views/ReportClosedView.cs similarity index 100% rename from Wonky.Entity/Views/SalesReportClosedView.cs rename to Wonky.Entity/Views/ReportClosedView.cs diff --git a/Wonky.Entity/Views/SalesReportDataViewModel.cs b/Wonky.Entity/Views/ReportData.cs similarity index 98% rename from Wonky.Entity/Views/SalesReportDataViewModel.cs rename to Wonky.Entity/Views/ReportData.cs index 3b246930..594f4ef4 100644 --- a/Wonky.Entity/Views/SalesReportDataViewModel.cs +++ b/Wonky.Entity/Views/ReportData.cs @@ -1,6 +1,6 @@ namespace Wonky.Entity.Views; -public class SalesReportDataViewModel +public class ReportData { public string ReportId { get; set; } = ""; public string ErpUserId { get; set; } = ""; diff --git a/Wonky.Entity/Views/ReportItemCustomer.cs b/Wonky.Entity/Views/ReportItemCustomer.cs new file mode 100644 index 00000000..b79b3b98 --- /dev/null +++ b/Wonky.Entity/Views/ReportItemCustomer.cs @@ -0,0 +1,37 @@ +namespace Wonky.Entity.Views; + +public class ReportItemCustomer +{ + /// + /// Company name + /// + public string Name { get; set; } = ""; + /// + /// Company account + /// + public string Account { get; set; } = ""; + /// + /// Company office phone + /// + public string Phone { get; set; } = ""; + /// + /// Company VAT registration number + /// + public string VatNumber { get; set; } = ""; + /// + /// Company address city name + /// + public string City { get; set; } = ""; + /// + /// Company address postal coce + /// + public string ZipCode { get; set; } = ""; + /// + /// Company address line 1 + /// + public string Address1 { get; set; } = ""; + /// + /// Company address address line 2 + /// + public string Address2 { get; set; } = ""; +} \ No newline at end of file diff --git a/Wonky.Entity/Views/ReportItemLine.cs b/Wonky.Entity/Views/ReportItemLine.cs new file mode 100644 index 00000000..c2d80f8e --- /dev/null +++ b/Wonky.Entity/Views/ReportItemLine.cs @@ -0,0 +1,29 @@ +namespace Wonky.Entity.Views; + +public class ReportItemLine +{ + /// + /// Line description + /// + public string Description { get; set; } = ""; + /// + /// Line item SKU + /// + public string Sku { get; set; } = ""; + /// + /// Line item quantity + /// + public int Quantity { get; set; } + /// + /// Line item discount + /// + public decimal Discount { get; set; } + /// + /// Line item price + /// + public decimal Price { get; set; } + /// + /// Line sum + /// + public decimal LineSum { get; set; } +} \ No newline at end of file diff --git a/Wonky.Entity/Views/ReportItemListView.cs b/Wonky.Entity/Views/ReportItemListView.cs new file mode 100644 index 00000000..1eb0e1aa --- /dev/null +++ b/Wonky.Entity/Views/ReportItemListView.cs @@ -0,0 +1,7 @@ +namespace Wonky.Entity.Views; + +public class ReportItemListView +{ + public bool ReportClosed { get; set; } + public List ReportItems { get; set; } = new(); +} \ No newline at end of file diff --git a/Wonky.Entity/Views/ActivityListItemView.cs b/Wonky.Entity/Views/ReportItemView.cs similarity index 65% rename from Wonky.Entity/Views/ActivityListItemView.cs rename to Wonky.Entity/Views/ReportItemView.cs index 844035a8..8b9e2b5d 100644 --- a/Wonky.Entity/Views/ActivityListItemView.cs +++ b/Wonky.Entity/Views/ReportItemView.cs @@ -1,70 +1,62 @@ namespace Wonky.Entity.Views; -public class ActivityListItemView +public class ReportItemView { /// - /// Company Info in listing + /// Customer company info /// - public ActivityCompanyView Company { get; set; } = new(); - + public ReportItemCustomer Company { get; set; } = new(); /// - /// Processing note to office + /// Lines /// - public string OfficeNote { get; set; } = ""; - + public List Lines { get; set; } = new(); /// - /// Total amount - /// - public decimal OrderAmount { get; set; } - - /// - /// Sas amount - /// - public decimal SasAmount { get; set; } - - /// - /// Sales head entity Id - /// - public string SalesHeadId { get; set; } = ""; - - /// - /// Flag indicating if activity is a sale or a quote + /// Closed sale /// public bool Closed { get; set; } - /// - /// Document date + /// Order amount + /// + public decimal OrderAmount { get; set; } + /// + /// Order safe seal amount + /// + public decimal SasAmount { get; set; } + /// + /// Order date /// public string OrderDate { get; set; } = ""; - /// - /// Client reference number + /// Office note /// - public string ReferenceNumber { get; set; } = ""; - + public string OfficeNote { get; set; } = ""; /// - /// Client reference name + /// Product demo + /// + public string Demo { get; set; } = ""; + /// + /// Product sale resume + /// + public string Sales { get; set; } = ""; + /// + /// Our reference + /// + public string OurRef { get; set; } = ""; + /// + /// Customer reference /// public string YourRef { get; set; } = ""; - + /// + /// Customer reference number + /// + public string ReferenceNumber { get; set; } = ""; /// /// Visit type enum as string /// public string VisitTypeEnum { get; set; } = ""; - /// - /// Status type enum as string + /// Status type enum as string /// public string StatusTypeEnum { get; set; } = ""; - - /// - /// Demonstration - /// - public string Demo { get; set; } = ""; - - /// - /// Sales resume - /// - public string Sales { get; set; } = ""; -} +} \ No newline at end of file diff --git a/Wonky.Entity/Views/ReportView.cs b/Wonky.Entity/Views/ReportView.cs new file mode 100644 index 00000000..0fd5bf33 --- /dev/null +++ b/Wonky.Entity/Views/ReportView.cs @@ -0,0 +1,7 @@ +namespace Wonky.Entity.Views; + +public class ReportView +{ + public ReportData ReportData { get; set; } = new(); + public List ReportItems { get; set; } = new(); +} \ No newline at end of file diff --git a/Wonky.Entity/Views/SalesReportViewModel.cs b/Wonky.Entity/Views/SalesReportViewModel.cs deleted file mode 100644 index 4b7aa2aa..00000000 --- a/Wonky.Entity/Views/SalesReportViewModel.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Wonky.Entity.Views; - -public class SalesReportViewModel -{ - public SalesReportDataViewModel ReportData { get; set; } = new(); - public List Activities { get; set; } = new (); -} \ No newline at end of file