diff --git a/Wonky.Client/Components/OfficeLandingComponent.razor b/Wonky.Client/Components/OfficeLandingComponent.razor
index 0bdb3c38..80490c94 100644
--- a/Wonky.Client/Components/OfficeLandingComponent.razor
+++ b/Wonky.Client/Components/OfficeLandingComponent.razor
@@ -27,6 +27,9 @@
Sælger Liste
+
+ Åbne ordrer
+
Telefon Bestilling
@@ -48,6 +51,9 @@
Sælger Liste
+
+ Åbne ordrer
+
Telefon Bestilling
@@ -66,9 +72,12 @@
- Sælger Liste
+ Sælger Liste
+
+ Åbne ordrer
+
Telefon Bestilling
diff --git a/Wonky.Client/HttpRepository/IOfficeOpenOrdersRepository.cs b/Wonky.Client/HttpRepository/IOfficeOpenOrdersRepository.cs
new file mode 100644
index 00000000..6172147b
--- /dev/null
+++ b/Wonky.Client/HttpRepository/IOfficeOpenOrdersRepository.cs
@@ -0,0 +1,9 @@
+using Wonky.Entity.Views;
+
+namespace Wonky.Client.HttpRepository;
+
+public interface IOfficeOpenOrdersRepository
+{
+ Task
> GetOpenOrders();
+ Task> GetOpenOrders(string countryCode);
+}
\ No newline at end of file
diff --git a/Wonky.Client/HttpRepository/IOrderProcessRepository.cs b/Wonky.Client/HttpRepository/IOrderProcessRepository.cs
index 0b0e564e..676ccb4a 100644
--- a/Wonky.Client/HttpRepository/IOrderProcessRepository.cs
+++ b/Wonky.Client/HttpRepository/IOrderProcessRepository.cs
@@ -28,27 +28,27 @@ public interface IOrderProcessRepository
///
///
///
- Task> GetWarehouseOrderListByDate(string date);
+ Task> GetOrderListByDate(string date);
///
- /// Get orders by status
+ /// Get orders by state
///
- ///
+ ///
///
///
- Task> GetWarehouseOrderListByStatus(string status, string express = "");
+ Task> GetOrderListByStatus(string state, string express = "");
///
/// Get order with orderId
///
///
///
- Task GetWarehouseOrder(string orderId);
+ Task GetOrderById(string orderId);
///
- /// Update Order status setting new process status
+ /// Update Order state setting new process state
///
- ///
+ ///
///
- Task UpdateWarehouseOrderStatus(OrderProcessState processState);
+ Task UpdateOrderStatus(OrderProcessState orderState);
}
\ No newline at end of file
diff --git a/Wonky.Client/HttpRepository/OfficeOpenOrdersRepository.cs b/Wonky.Client/HttpRepository/OfficeOpenOrdersRepository.cs
new file mode 100644
index 00000000..d5485d3a
--- /dev/null
+++ b/Wonky.Client/HttpRepository/OfficeOpenOrdersRepository.cs
@@ -0,0 +1,52 @@
+using System.Net.Http.Json;
+using System.Text.Json;
+using Microsoft.AspNetCore.Components;
+using Microsoft.Extensions.Options;
+using Wonky.Entity.Configuration;
+using Wonky.Entity.DTO;
+using Wonky.Entity.Views;
+
+namespace Wonky.Client.HttpRepository;
+
+public class OfficeOpenOrdersRepository : IOfficeOpenOrdersRepository
+{
+ private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
+ {
+ PropertyNameCaseInsensitive = true
+ };
+
+ private readonly NavigationManager _navigation;
+ private readonly ILogger _logger;
+ private readonly HttpClient _client;
+ private readonly ApiConfig _api;
+
+ public OfficeOpenOrdersRepository(HttpClient client,
+ ILogger logger,
+ NavigationManager navigation,
+ IOptions configuration)
+ {
+ _client = client;
+ _logger = logger;
+ _navigation = navigation;
+ _api = configuration.Value;
+ }
+
+ public async Task> GetOpenOrders()
+ {
+ var result = await _client
+ .GetFromJsonAsync>(
+ $"{_api.OfficeSales}", _options);
+
+ return result ?? new List();
+
+ }
+
+ public async Task> GetOpenOrders(string countryCode)
+ {
+ var result = await _client
+ .GetFromJsonAsync>(
+ $"{_api.OfficeSales}/country/{countryCode}", _options);
+
+ return result ?? new List();
+ }
+}
\ No newline at end of file
diff --git a/Wonky.Client/HttpRepository/OrderProcessRepository.cs b/Wonky.Client/HttpRepository/OrderProcessRepository.cs
index c285b5c1..0b8f0db8 100644
--- a/Wonky.Client/HttpRepository/OrderProcessRepository.cs
+++ b/Wonky.Client/HttpRepository/OrderProcessRepository.cs
@@ -52,22 +52,22 @@ public class OrderProcessRepository : IOrderProcessRepository
///
///
///
- public async Task> GetWarehouseOrderListByDate(string date)
+ public async Task> GetOrderListByDate(string date)
{
- var result = await _client.GetFromJsonAsync>($"{_api.Warehouse}/date?date={date}", _options);
+ var result = await _client.GetFromJsonAsync>($"{_api.OrderProcess}/date?date={date}", _options);
return result ?? new List();
}
///
- /// Get orders by status
+ /// Get orders by state
///
- ///
+ ///
///
///
- public async Task> GetWarehouseOrderListByStatus(string status, string express = "")
+ public async Task> GetOrderListByStatus(string state, string express = "")
{
var result = await _client.GetFromJsonAsync>(
- $"{_api.Warehouse}/state?status={status}&express={express}", _options);
+ $"{_api.OrderProcess}/state?status={state}&express={express}", _options);
return result ?? new List();
}
@@ -76,20 +76,20 @@ public class OrderProcessRepository : IOrderProcessRepository
///
///
///
- public async Task GetWarehouseOrder(string orderId)
+ public async Task GetOrderById(string orderId)
{
- var result = await _client.GetFromJsonAsync($"{_api.Warehouse}/{orderId}", _options);
+ var result = await _client.GetFromJsonAsync($"{_api.OrderProcess}/{orderId}", _options);
return result ?? new WarehouseOrderView();
}
///
- /// Update Order status setting new process status
+ /// Update Order state setting new process state
///
- ///
+ ///
///
- public async Task UpdateWarehouseOrderStatus(OrderProcessState processState)
+ public async Task UpdateOrderStatus(OrderProcessState orderState)
{
- _logger.LogDebug("process => {}", JsonSerializer.Serialize(processState, _options));
- await _client.PutAsJsonAsync($"{_api.Warehouse}/{processState.OrderId}", processState, _options);
+ _logger.LogDebug("process => {}", JsonSerializer.Serialize(orderState, _options));
+ await _client.PutAsJsonAsync($"{_api.OrderProcess}/{orderState.OrderId}", orderState, _options);
}
}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/CommonReportPrintOrderPage.razor b/Wonky.Client/Pages/CommonReportPrintOrderPage.razor
index 3be5b70c..6ce5c5a2 100644
--- a/Wonky.Client/Pages/CommonReportPrintOrderPage.razor
+++ b/Wonky.Client/Pages/CommonReportPrintOrderPage.razor
@@ -28,7 +28,7 @@
-
+
diff --git a/Wonky.Client/Pages/CommonReportPrintOrderPage.razor.cs b/Wonky.Client/Pages/CommonReportPrintOrderPage.razor.cs
index da83055d..b5c00185 100644
--- a/Wonky.Client/Pages/CommonReportPrintOrderPage.razor.cs
+++ b/Wonky.Client/Pages/CommonReportPrintOrderPage.razor.cs
@@ -72,7 +72,7 @@ public partial class CommonReportPrintOrderPage
foreach (var item in orders)
{
Toaster.ShowInfo($"Behandler {current++} af {count} ordrer. Vent venligst");
- await ProcessRepo.UpdateWarehouseOrderStatus(new OrderProcessState
+ await ProcessRepo.UpdateOrderStatus(new OrderProcessState
{
OrderId = item.ActivityId,
ProcessStatusEnum = Utils.EnumToString(ProcessStatus.Printed)
diff --git a/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor.cs b/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor.cs
index 460f996d..0bd628f1 100644
--- a/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor.cs
+++ b/Wonky.Client/Pages/OfficeAdvisorReportViewPage.razor.cs
@@ -113,7 +113,7 @@ public partial class OfficeAdvisorReportViewPage : IDisposable
{
Toaster.ClearInfoToasts();
Toaster.ShowInfo($"Behandler {current++} af {count} ordrer. Vent venligst");
- await ProcessRepo.UpdateWarehouseOrderStatus(new OrderProcessState
+ await ProcessRepo.UpdateOrderStatus(new OrderProcessState
{
OrderId = item.ActivityId,
ProcessStatusEnum = Utils.EnumToString(ProcessStatus.Printed)
diff --git a/Wonky.Client/Pages/OfficeOpenOrderListPage.razor b/Wonky.Client/Pages/OfficeOpenOrderListPage.razor
new file mode 100644
index 00000000..9a8d0901
--- /dev/null
+++ b/Wonky.Client/Pages/OfficeOpenOrderListPage.razor
@@ -0,0 +1,41 @@
+
+@using Microsoft.AspNetCore.Authorization
+@using Wonky.Client.Components
+
+@attribute [Authorize(Roles = "Admin,Office,Supervisor,Warehouse")]
+@page "/sales/orderlist/{CountryCode}"
+
+Åbne ordrer @CountryCode
+@if (OrderLIst.Any())
+{
+
+}
+else
+{
+ Afventer svar fra service ... Vent venligst.
+}
+
+@if (Working)
+{
+
+}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/OfficeOpenOrderListPage.razor.cs b/Wonky.Client/Pages/OfficeOpenOrderListPage.razor.cs
new file mode 100644
index 00000000..19e41e45
--- /dev/null
+++ b/Wonky.Client/Pages/OfficeOpenOrderListPage.razor.cs
@@ -0,0 +1,41 @@
+
+using Microsoft.AspNetCore.Components;
+using Wonky.Client.HttpInterceptors;
+using Wonky.Client.HttpRepository;
+using Wonky.Entity.Views;
+
+#pragma warning disable CS8618
+
+namespace Wonky.Client.Pages;
+
+public partial class OfficeOpenOrderListPage : IDisposable
+{
+ // #############################################################
+ [Inject] public ILogger Logger { get; set; }
+ [Inject] public IOfficeOpenOrdersRepository OpenOrdersRepo { get; set; }
+ [Inject] public HttpInterceptorService Interceptor { get; set; }
+ [Inject] public NavigationManager Navigator { get; set; }
+
+ // #############################################################
+ [Parameter] public string CountryCode { get; set; } = "";
+
+ // #############################################################
+ private bool Working { get; set; } = true;
+ private List OrderLIst { get; set; } = new();
+
+ protected override async Task OnParametersSetAsync()
+ {
+ Interceptor.RegisterEvent();
+ Interceptor.RegisterBeforeSendEvent();
+ Logger.LogInformation("---- CountryCode is '{}'", CountryCode);
+ OrderLIst = await OpenOrdersRepo.GetOpenOrders(CountryCode);
+
+ Working = false;
+ }
+
+ public void Dispose()
+ {
+ Interceptor.DisposeEvent();
+ }
+
+}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/OfficeOrderViewPage.razor b/Wonky.Client/Pages/OfficeOrderViewPage.razor
index 58fd8982..bd96137d 100644
--- a/Wonky.Client/Pages/OfficeOrderViewPage.razor
+++ b/Wonky.Client/Pages/OfficeOrderViewPage.razor
@@ -28,7 +28,7 @@
-
+
@if (ReportItem is { Express: true, ProcessStatusEnum: "None" })
{
diff --git a/Wonky.Client/Pages/OfficeOrderViewPage.razor.cs b/Wonky.Client/Pages/OfficeOrderViewPage.razor.cs
index 83765895..89119866 100644
--- a/Wonky.Client/Pages/OfficeOrderViewPage.razor.cs
+++ b/Wonky.Client/Pages/OfficeOrderViewPage.razor.cs
@@ -19,6 +19,9 @@ using System.Text.Json;
using Blazored.LocalStorage;
using Blazored.Toast.Services;
using Microsoft.AspNetCore.Components;
+using Microsoft.JSInterop;
+using Wonky.Client.Enums;
+using Wonky.Client.Helpers;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Wonky.Client.Local.Services;
@@ -39,6 +42,9 @@ public partial class OfficeOrderViewPage : IDisposable
[Inject] public ILogger
Logger { get; set; }
[Inject] public IToastService Toast { get; set; }
[Inject] public IUserInfoService UserInfoService { get; set; }
+ [Inject] public IJSRuntime JsRuntime { get; set; }
+ [Inject] public IOrderProcessRepository ProcessRepo { get; set; }
+
// #############################################################
[Parameter] public string CompanyId { get; set; } = "";
@@ -48,6 +54,8 @@ public partial class OfficeOrderViewPage : IDisposable
private ReportItemView ReportItem { get; set; } = new();
private bool IsNotified { get; set; }
private bool Working { get; set; } = true;
+ private IJSObjectReference JsModule { get; set; }
+
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
{
@@ -64,9 +72,15 @@ public partial class OfficeOrderViewPage : IDisposable
Working = false;
}
- ///
- /// Set activity process state to express. Send confirmation notification to salesRep
- ///
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ if (firstRender)
+ {
+ JsModule = await JsRuntime
+ .InvokeAsync("import", "/scripts/print-invoke.js");
+ }
+ }
+
private async Task SetExpressState()
{
// disable doubled actions
@@ -131,6 +145,17 @@ public partial class OfficeOrderViewPage : IDisposable
Working = false;
}
+ private async Task OfficePrint()
+ {
+ await ProcessRepo.UpdateOrderStatus(new OrderProcessState
+ {
+ OrderId = OrderId,
+ ProcessStatusEnum = Utils.EnumToString(ProcessStatus.Printed)
+ });
+ await JsModule.InvokeVoidAsync("printInvoke");
+ }
+
+
public void Dispose()
{
Interceptor.DisposeEvent();
diff --git a/Wonky.Client/Program.cs b/Wonky.Client/Program.cs
index ab6f9c33..bc5a399f 100644
--- a/Wonky.Client/Program.cs
+++ b/Wonky.Client/Program.cs
@@ -81,6 +81,7 @@ builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
+builder.Services.AddScoped();
// warehouse repository
builder.Services.AddScoped();
// mail service
diff --git a/Wonky.Client/Wonky.Client.csproj b/Wonky.Client/Wonky.Client.csproj
index 7971d607..d67d15cf 100644
--- a/Wonky.Client/Wonky.Client.csproj
+++ b/Wonky.Client/Wonky.Client.csproj
@@ -11,14 +11,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
index d8adf0bd..313b510a 100644
--- a/Wonky.Client/wwwroot/appsettings.json
+++ b/Wonky.Client/wwwroot/appsettings.json
@@ -1,7 +1,7 @@
{
"appInfo": {
"name": "Wonky Online",
- "version": "255.0",
+ "version": "257.0",
"rc": true,
"sandBox": true,
"image": "grumpy-coder.png",
@@ -11,7 +11,7 @@
"LogLevel": {
"Default": "Debug",
"System": "Debug",
- "Microsoft": "None"
+ "Microsoft": "Debug"
},
"Debug": {
"LogLevel": {
@@ -32,7 +32,9 @@
"officeAdvisors": "api/v2/office/users/advisors",
"officeCustomers": "api/v2/office/customers",
"officeReports": "api/v2/office/reports",
+ "officeSales": "api/v2/office/sales",
"officeUsers": "api/v2/office/users/admin",
+ "orderProcess": "api/v2/orders/process",
"publicProducts": "api/v2/public/products",
"serviceAuth": "v2/token",
"serviceGlsId": "",
@@ -54,7 +56,6 @@
"userManagerSetPasswd": "api/v2/app/manage/passwd",
"userRoles": "api/v2/app/manage/roles",
"userSupport": "/api/v2/app/manage/support",
- "warehouse": "api/v2/warehouse/packages",
"b2bCustomer": "api/v2/b2b"
}
}
diff --git a/Wonky.Entity/Configuration/ApiConfig.cs b/Wonky.Entity/Configuration/ApiConfig.cs
index 887771c6..76787470 100644
--- a/Wonky.Entity/Configuration/ApiConfig.cs
+++ b/Wonky.Entity/Configuration/ApiConfig.cs
@@ -83,6 +83,10 @@ public class ApiConfig
///
public string OfficeReports { get; set; } = "";
+ ///
+ /// Endpoint for Office Sales actions
+ ///
+ public string OfficeSales { get; set; } = "";
///
/// Public Product url
///
@@ -189,7 +193,7 @@ public class ApiConfig
///
/// Uri for warehouse requests
///
- public string Warehouse { get; set; } = "";
+ public string OrderProcess { get; set; } = "";
///
/// Uri for B2BCustomer
diff --git a/Wonky.Entity/Views/OpenOrderListView.cs b/Wonky.Entity/Views/OpenOrderListView.cs
new file mode 100644
index 00000000..ebb01b86
--- /dev/null
+++ b/Wonky.Entity/Views/OpenOrderListView.cs
@@ -0,0 +1,11 @@
+namespace Wonky.Entity.Views;
+
+public class OpenOrderListView
+{
+ public string CompanyId { get; set; } = "";
+ public string CompanyName { get; set; } = "";
+ public string Account { get; set; } = "";
+ public string SalesHeadId { get; set; } = "";
+ public string OrderDate { get; set; } = "";
+ public string SalesRep { get; set; } = "";
+}
\ No newline at end of file