@@ -190,9 +190,11 @@
+ @*
+ *@
|
@@ -200,7 +202,8 @@
|
@SelectedItem.Sku |
-
+
+ @* *@
|
diff --git a/Wonky.Client/Pages/OfficeOrderCreatePage.razor.cs b/Wonky.Client/Pages/OfficeOrderCreatePage.razor.cs
index e2c055ef..6c9af773 100644
--- a/Wonky.Client/Pages/OfficeOrderCreatePage.razor.cs
+++ b/Wonky.Client/Pages/OfficeOrderCreatePage.razor.cs
@@ -14,6 +14,7 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
+using System.Globalization;
using System.Text.Json;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
@@ -31,6 +32,8 @@ namespace Wonky.Client.Pages;
public partial class OfficeOrderCreatePage : IDisposable
{
+ // --------------------------------------------------------------------
+ // injected services
[Inject] public ILogger
Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICountryCustomerRepository CustomerRepo { get; set; }
@@ -38,11 +41,14 @@ public partial class OfficeOrderCreatePage : IDisposable
[Inject] public ICountryReportRepository ReportRepo { get; set; }
[Inject] public ISystemUserRepository UserRepo { get; set; }
[Inject] public ICountryCatalogRepository Catalog { get; set; }
+
+ // --------------------------------------------------------------------
// parameters
[Parameter] public string CompanyId { get; set; } = "";
[Parameter] public string CountryCode { get; set; } = "";
[CascadingParameter] public DraftStateProvider DraftProvider { get; set; }
+ // --------------------------------------------------------------------
// private variables
private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true};
// class objects
@@ -62,6 +68,9 @@ public partial class OfficeOrderCreatePage : IDisposable
private bool ReportClosed { get; set; }
private bool PoFormInvalid { get; set; } = true;
private bool Working { get; set; } = true;
+
+ // --------------------------------------------------------------------
+ // overlays
private PriceCatalogOverlay CatalogOverlay { get; set; } = new();
private ProductHistoryOverlay ProductOverlay { get; set; } = new();
private ProductPriceHistoryOverlay PriceOverlay { get; set; } = new();
@@ -70,10 +79,12 @@ public partial class OfficeOrderCreatePage : IDisposable
private CustomerInvoiceListOverlay InvoiceListOverlay { get; set; } = new();
private CustomerInventoryListOverlay InventoryListOverlay { get; set; } = new();
private CustomerActivityListOverlay ActivityListOverlay { get; set; } = new();
+
+ // --------------------------------------------------------------------
+ // lists
private List Inventory { get; set; } = new();
private List CheckList { get; set; } = new();
private InvoiceListView CompanyInvoices { get; set; } = new();
-
private List Activities { get; set; } = new();
@@ -142,9 +153,40 @@ public partial class OfficeOrderCreatePage : IDisposable
Working = false;
}
- private void CallPriceListModal()
+ private async Task DeleteDraft()
{
- CatalogOverlay.Show();
+ await DraftProvider.DeleteDraftAsync();
+ }
+
+ private async Task RemoveItem(DraftItem item)
+ {
+ // remove item
+ DraftProvider.Draft.Items.Remove(item);
+ // save the remaining draft
+ await DraftProvider.SaveChangesAsync();
+ }
+
+ private async Task AddItem(SalesItemView salesItem)
+ {
+ ShowItem = false;
+ // create a new cart item
+ var item = new DraftItem
+ {
+ Item = salesItem,
+ Quantity = Convert.ToInt32(Quantity),
+ Price = Convert.ToDecimal(Price, CultureInfo.InvariantCulture),
+ Discount = Convert.ToDecimal(Discount, CultureInfo.InvariantCulture),
+ };
+ // reset internals to initial state
+ Quantity = "1";
+ Price = "0";
+ Discount = "0";
+ // add it to the cart
+ DraftProvider.Draft.Items.Add(item);
+ if(Activity.ActivityStatusEnum != "quote")
+ Activity.ActivityStatusEnum = "order";
+ // save the item using the CartStateProvider's save method
+ await DraftProvider.SaveChangesAsync();
}
private async Task PriceListCallback(SelectedSku sku)
@@ -158,7 +200,12 @@ public partial class OfficeOrderCreatePage : IDisposable
Quantity = sku.Quantity;
StateHasChanged();
}
-
+
+ private void CallPriceListModal()
+ {
+ CatalogOverlay.Show();
+ }
+
private void ShowInvoiceOverlay()
{
@@ -177,20 +224,6 @@ public partial class OfficeOrderCreatePage : IDisposable
}
- private void DeleteDraft()
- {
-
- }
-
- private void AddItem(SalesItemView item)
- {
-
- }
- private void RemoveItem(DraftItem item)
- {
-
- }
-
private void CreateActivity()
{