+
@@ -78,8 +59,8 @@
@CompanyDto.Interval |
- @($"{CompanyDto.LastVisitDate:dd-MM-yyyy}") |
- @($"{CompanyDto.NextVisitDate:dd-MM-yyyy}") |
+ @($"{CompanyDto.LastVisitDate:yy-MM-dd}") |
+ @($"{CompanyDto.NextVisitDate:yy-MM-dd}") |
diff --git a/Wonky.Client/Pages/DraftDocument.razor b/Wonky.Client/Pages/DraftDocument.razor
new file mode 100644
index 00000000..255512b6
--- /dev/null
+++ b/Wonky.Client/Pages/DraftDocument.razor
@@ -0,0 +1,152 @@
+@using Wonky.Client.Components
+@using System.Net.Http.Headers
+@page "/OrdreKladde"
+
+@* display product filter options *@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@if (SalesItems.Any())
+{
+ // display filtered product list
+
+
+
+ Navn |
+ Varenr |
+ Stk / Pris |
+ |
+
+
+
+ @foreach (var item in SalesItems)
+ {
+
+ @item.Name |
+ @item.Sku |
+
+ @foreach (var rate in item.Rates)
+ {
+ -
+
@rate.Quantity
+ @rate.Rate
+
+ }
+ |
+ |
+
+ }
+
+
+}
+else
+{
+
+}
+@* Display draft line *@
+@if (_selectedItem != null && ShowItem)
+{
+
+
+
+
+
+ Varenavn
+
+
+ Varenr
+
+
+ Antal
+
+
+ Pris
+
+
+
+
+
+
+
+ @_selectedItem.Name
+
+
+ @_selectedItem.Sku
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+@* Display draft lines *@
+@if (DraftStateProvider != null && DraftStateProvider.Draft.Items.Count > 0)
+{
+
+
+
+
+
+
+ Navn |
+ Varenr |
+ Antal |
+ Enhedspris |
+ Linjesum |
+ |
+
+
+
+ @foreach (var cItem in DraftStateProvider.Draft.Items)
+ {
+
+ @cItem.Item.Name |
+ @cItem.Item.Sku |
+ @cItem.Quantity |
+ @cItem.Price |
+ @cItem.Total |
+ |
+
+ }
+
+ |
+ |
+ |
+ Total |
+ @DraftStateProvider.Draft.Total |
+ |
+
+
+
+
+
+
+}
diff --git a/Wonky.Client/Pages/OrderDraft.razor.cs b/Wonky.Client/Pages/DraftDocument.razor.cs
similarity index 71%
rename from Wonky.Client/Pages/OrderDraft.razor.cs
rename to Wonky.Client/Pages/DraftDocument.razor.cs
index 6210700c..d2d38384 100644
--- a/Wonky.Client/Pages/OrderDraft.razor.cs
+++ b/Wonky.Client/Pages/DraftDocument.razor.cs
@@ -8,18 +8,21 @@ using Wonky.Entity.Requests;
namespace Wonky.Client.Pages;
-public partial class OrderDraft : IDisposable
+public partial class DraftDocument : IDisposable
{
- [CascadingParameter] CartStateProvider CartStateProvider { get; set; }
+ [CascadingParameter] DraftStateProvider DraftStateProvider { get; set; }
private bool ShowItem;
+ private bool ShowSearchView;
private string Quantity = "1";
private string Price = "0";
private SalesItemDto _selectedItem { get; set; } = new();
private List
SalesItems { get; set; } = new();
- private SalesItemDto SelectedItem { get; set; } = new();
+ private List CompanyList { get; set; } = new();
+ // private SalesItemDto SelectedItem { get; set; } = new();
private MetaData _meta { get; set; } = new();
private PagingParams _paging { get; set; } = new();
[Inject] private ISalesItemHttpRepository ItemRepo { get; set; }
+ [Inject] private ICompanyHttpRepository CompanyRepo { get; set; }
[Inject] private HttpInterceptorService Interceptor { get; set; }
protected override async Task OnInitializedAsync()
@@ -34,8 +37,13 @@ public partial class OrderDraft : IDisposable
SalesItems = response.Items!;
_meta = response.MetaData;
}
-
- private void ItemSelect(string itemId)
+
+ private async Task DeleteDraft()
+ {
+ await DraftStateProvider.DeleteDraftAsync();
+ }
+
+ private void SelectItem(string itemId)
{
ShowItem = true;
_selectedItem = (from x in SalesItems where x.ItemId == itemId select x).First();
@@ -43,11 +51,11 @@ public partial class OrderDraft : IDisposable
Quantity = "1";
}
- private async Task AddToCart(SalesItemDto salesItem)
+ private async Task AddItem(SalesItemDto salesItem)
{
ShowItem = false;
// create a new cart item
- var item = new CartItem
+ var item = new DraftItem
{
Item = salesItem,
Quantity = Convert.ToInt32(Quantity),
@@ -55,22 +63,18 @@ public partial class OrderDraft : IDisposable
};
// add it to the cart
- CartStateProvider.ShoppingCart.Items.Add(item);
-
- // reset variables
- _selectedItem = new();
- Quantity = "1";
- Price = "0";
+ DraftStateProvider.Draft.Items.Add(item);
// save the item using the CartStateProvider's save method
- await CartStateProvider.SaveChangesAsync();
+ await DraftStateProvider.SaveChangesAsync();
}
- private async Task RemoveItem(CartItem item)
+ private async Task RemoveItem(DraftItem item)
{
- // click on remove
- CartStateProvider.ShoppingCart.Items.Remove(item);
- // save the cart
- await CartStateProvider.SaveChangesAsync();
+ // remove item
+ DraftStateProvider.Draft.Items.Remove(item);
+
+ // save the remaining draft
+ await DraftStateProvider.SaveChangesAsync();
}
private async Task GroupFilterChanged(string groupFilter)
{
diff --git a/Wonky.Client/Pages/OrderDraft.razor b/Wonky.Client/Pages/OrderDraft.razor
deleted file mode 100644
index 5711d86b..00000000
--- a/Wonky.Client/Pages/OrderDraft.razor
+++ /dev/null
@@ -1,159 +0,0 @@
-@using Wonky.Client.Components
-@using System.ComponentModel.DataAnnotations
-
-@page "/OrdreKladde"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@if (SalesItems.Any())
-{
-
-
-
- Navn |
- Varenr |
- Stk / Pris |
- |
-
-
-
- @foreach (var item in SalesItems)
- {
-
-
- @item.Name
- |
-
- @item.Sku
- |
-
-
- @foreach (var rate in item.Rates)
- {
- -
-
@rate.Quantity
- @rate.Rate
-
- }
-
- |
-
-
- |
-
- }
-
-
-}
-else
-{
-
-}
-@if (_selectedItem != null && ShowItem)
-{
-
-
-
-
-
- Varenavn
-
-
- Varenr
-
-
- Antal
-
-
- Pris
-
-
-
-
-
-
-
- @_selectedItem.Name
-
-
- @_selectedItem.Sku
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
-
-@* Show the cart contents if there are items in it. *@
-@if (CartStateProvider != null && CartStateProvider.ShoppingCart.Items.Count > 0)
-{
-
-
-
-
-
-
- Navn |
- Varenr |
- Antal |
- Enhedspris |
- Linjesum |
- |
-
-
-
- @foreach (var cItem in CartStateProvider.ShoppingCart.Items)
- {
-
-
- @cItem.Item.Name
- |
-
- @cItem.Item.Sku
- |
-
- @cItem.Quantity
- |
-
- @cItem.Price
- |
-
- @cItem.Total
- |
-
-
- |
-
- }
-
- |
- |
- |
- Total |
- @CartStateProvider.ShoppingCart.Total |
- |
-
-
-
-
-
-}
\ No newline at end of file
diff --git a/Wonky.Client/Shared/CartStateProvider.razor b/Wonky.Client/Shared/DraftStateProvider.razor
similarity index 100%
rename from Wonky.Client/Shared/CartStateProvider.razor
rename to Wonky.Client/Shared/DraftStateProvider.razor
diff --git a/Wonky.Client/Shared/CartStateProvider.razor.cs b/Wonky.Client/Shared/DraftStateProvider.razor.cs
similarity index 71%
rename from Wonky.Client/Shared/CartStateProvider.razor.cs
rename to Wonky.Client/Shared/DraftStateProvider.razor.cs
index 1ef4fbc1..b3fd0d95 100644
--- a/Wonky.Client/Shared/CartStateProvider.razor.cs
+++ b/Wonky.Client/Shared/DraftStateProvider.razor.cs
@@ -21,10 +21,10 @@ using Wonky.Entity.Models;
namespace Wonky.Client.Shared;
-public partial class CartStateProvider
+public partial class DraftStateProvider
{
[Parameter] public RenderFragment ChildContent { get; set; }
- public Cart ShoppingCart { get; set; }
+ public Draft Draft { get; set; }
[Parameter] public string Account { get; set; } = "MyCart";
[Inject] public ILocalStorageService LocalStorageService { get; set; }
@@ -32,26 +32,30 @@ public partial class CartStateProvider
protected override async Task OnParametersSetAsync()
{
- ShoppingCart = await LocalStorageService.GetItemAsync(Account);
+ Draft = await LocalStorageService.GetItemAsync(Account);
- if (ShoppingCart == null || ShoppingCart.Items.Count == 0)
+ if (Draft == null || Draft.Items.Count == 0)
{
- ShoppingCart = new Cart();
+ Draft = new Draft();
}
else
{
- if (DateTime.Now > ShoppingCart.LastAccessed.AddSeconds(ShoppingCart.TimeToLiveInSeconds))
+ if (DateTime.Now > Draft.LastAccessed.AddSeconds(Draft.TimeToLiveInSeconds))
{
- ShoppingCart = new Cart();
+ Draft = new Draft();
}
}
-
- ShoppingCart.LastAccessed = DateTime.Now;
+ Draft.LastAccessed = DateTime.Now;
_hasLoaded = true;
}
public async Task SaveChangesAsync()
{
- await LocalStorageService.SetItemAsync(Account, ShoppingCart);
+ await LocalStorageService.SetItemAsync(Account, Draft);
+ }
+
+ public async Task DeleteDraftAsync()
+ {
+ await LocalStorageService.RemoveItemAsync(Account);
}
}
\ No newline at end of file
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
deleted file mode 100644
index 9af3a118..00000000
--- a/Wonky.Client/wwwroot/appsettings.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Debug",
- "System": "Debug",
- "Microsoft": "Information"
- }
- },
- "apiConfig": {
- "baseAddress": "https://api.innotec.dk",
- "tokenPath": "token",
- "userInfo": "api/auth/userinfo",
- "crmCompanies": "api/v2/crm/companies",
- "priceCatalog": "api/v2/crm/catalog",
- "cvrLookup": "/api/v2/services/virk",
- "krvProducts": "api/v2/admin/q/products",
- "krvVariants": "api/v2/admin/q/variants",
- "imageUpload": "api/v2/admin/upload2",
- "userRegistration": "api/auth/register"
- }
-}
\ No newline at end of file
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
new file mode 120000
index 00000000..e0b50690
--- /dev/null
+++ b/Wonky.Client/wwwroot/appsettings.json
@@ -0,0 +1 @@
+../../../appsettings.json
\ No newline at end of file
diff --git a/Wonky.Client/wwwroot/css/app.css b/Wonky.Client/wwwroot/css/app.css
index 3848a5f4..bef512fe 100644
--- a/Wonky.Client/wwwroot/css/app.css
+++ b/Wonky.Client/wwwroot/css/app.css
@@ -1,7 +1,10 @@
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');
+.draft-expires-msg {
+ font-size: 0.8em;
+}
.spinner {
- height: 32px;
+ height: 48px;
}
html, body {
diff --git a/Wonky.Entity/DTO/CompanyDto.cs b/Wonky.Entity/DTO/CompanyDto.cs
index 4eef8ff3..03e5066c 100644
--- a/Wonky.Entity/DTO/CompanyDto.cs
+++ b/Wonky.Entity/DTO/CompanyDto.cs
@@ -25,9 +25,9 @@ public class CompanyDto
[Required(ErrorMessage = "Postnummer skal udfyldes")] public string ZipCode { get; set; } = "";
[Required(ErrorMessage = "Bynavn skal udfyldes")] public string City { get; set; } = "";
[Required(ErrorMessage = "CVR nummer skal udfyldes")] public string VatNumber { get; set; } = "";
-
public string CompanyId { get; set; } = "";
public string SalesRepId { get; set; } = "";
+ public string BcId { get; set; } = "";
public string Address1 { get; set; } = "";
public string Address2 { get; set; } = "";
public string Account { get; set; } = "";
@@ -35,7 +35,7 @@ public class CompanyDto
public string Mobile { get; set; } = "";
public string Email { get; set; } = "";
public string Attention { get; set; } = "";
- [JsonPropertyName("LastVisitTimestamp")] public DateTime LastVisitDate { get; set; }
- [JsonPropertyName("NextVisitTimestamp")] public DateTime NextVisitDate { get; set; }
+ public string LastVisitDate { get; set; } = "";
+ public string NextVisitDate { get; set; } = "";
public int Interval { get; set; } = 12;
}
\ No newline at end of file
diff --git a/Wonky.Entity/Models/Cart.cs b/Wonky.Entity/Models/Draft.cs
similarity index 79%
rename from Wonky.Entity/Models/Cart.cs
rename to Wonky.Entity/Models/Draft.cs
index 2a3b2737..278aca5c 100644
--- a/Wonky.Entity/Models/Cart.cs
+++ b/Wonky.Entity/Models/Draft.cs
@@ -2,7 +2,7 @@ using Wonky.Entity.DTO;
namespace Wonky.Entity.Models;
-public class CartItem
+public class DraftItem
{
public int Quantity { get; set; }
public SalesItemDto Item { get; set; }
@@ -21,9 +21,9 @@ public class CartItem
}
}
-public class Cart
+public class Draft
{
- public List Items { get; set; } = new List();
+ public List Items { get; set; } = new List();
public decimal Total
{
@@ -33,5 +33,5 @@ public class Cart
}
}
public DateTime LastAccessed { get; set; }
- public int TimeToLiveInSeconds { get; set; } = 60; // default
+ public int TimeToLiveInSeconds { get; set; } = 300; // default
}
\ No newline at end of file