WIP: office create order
This commit is contained in:
parent
3f0e293b41
commit
0b55511b7e
2 changed files with 56 additions and 20 deletions
|
@ -108,7 +108,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="this-draft" style="@(Activity.ActivityStatusEnum is "order" or "quote" ? "display: block" : "display:none")">
|
<div id="this-draft" >
|
||||||
@* Order lines -----------------------------------------------------*@
|
@* Order lines -----------------------------------------------------*@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
@ -190,9 +190,11 @@
|
||||||
<td class="align-middle">
|
<td class="align-middle">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" class="form-control" @bind-value="@Price"/>
|
<input type="number" class="form-control" @bind-value="@Price"/>
|
||||||
|
@*
|
||||||
<button class="btn btn-warning" type="button" @onclick="CallPriceHistoryModal">
|
<button class="btn btn-warning" type="button" @onclick="CallPriceHistoryModal">
|
||||||
<i class="bi-list-ul"></i>
|
<i class="bi-list-ul"></i>
|
||||||
</button>
|
</button>
|
||||||
|
*@
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="align-middle">
|
<td class="align-middle">
|
||||||
|
@ -200,7 +202,8 @@
|
||||||
</td>
|
</td>
|
||||||
<td class="align-middle">@SelectedItem.Sku</td>
|
<td class="align-middle">@SelectedItem.Sku</td>
|
||||||
<td class="align-middle">
|
<td class="align-middle">
|
||||||
<button type="button" class="btn btn-primary text-nowrap d-block" @onclick="@(() => AddItem(SelectedItem))">BESTIL @SelectedItem.Name</button>
|
<button type="button" class="btn btn-primary d-block text-sm-center" @onclick="@(() => AddItem(SelectedItem))">@Quantity stk. @SelectedItem.Name</button>
|
||||||
|
@* <button type="button" class="btn btn-primary text-nowrap d-block" @onclick="@(() => AddItem(SelectedItem))">BESTIL @SelectedItem.Name</button> *@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
// 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 System.Text.Json;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
using Microsoft.AspNetCore.Components.Forms;
|
using Microsoft.AspNetCore.Components.Forms;
|
||||||
|
@ -31,6 +32,8 @@ namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
public partial class OfficeOrderCreatePage : IDisposable
|
public partial class OfficeOrderCreatePage : IDisposable
|
||||||
{
|
{
|
||||||
|
// --------------------------------------------------------------------
|
||||||
|
// injected services
|
||||||
[Inject] public ILogger<OfficeOrderCreatePage> Logger { get; set; }
|
[Inject] public ILogger<OfficeOrderCreatePage> Logger { get; set; }
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] public ICountryCustomerRepository CustomerRepo { 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 ICountryReportRepository ReportRepo { get; set; }
|
||||||
[Inject] public ISystemUserRepository UserRepo { get; set; }
|
[Inject] public ISystemUserRepository UserRepo { get; set; }
|
||||||
[Inject] public ICountryCatalogRepository Catalog { get; set; }
|
[Inject] public ICountryCatalogRepository Catalog { get; set; }
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------
|
||||||
// parameters
|
// parameters
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[CascadingParameter] public DraftStateProvider DraftProvider { get; set; }
|
[CascadingParameter] public DraftStateProvider DraftProvider { get; set; }
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------
|
||||||
// private variables
|
// private variables
|
||||||
private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true};
|
private readonly JsonSerializerOptions _options = new() {PropertyNameCaseInsensitive = true};
|
||||||
// class objects
|
// class objects
|
||||||
|
@ -62,6 +68,9 @@ public partial class OfficeOrderCreatePage : IDisposable
|
||||||
private bool ReportClosed { get; set; }
|
private bool ReportClosed { get; set; }
|
||||||
private bool PoFormInvalid { get; set; } = true;
|
private bool PoFormInvalid { get; set; } = true;
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------
|
||||||
|
// overlays
|
||||||
private PriceCatalogOverlay CatalogOverlay { get; set; } = new();
|
private PriceCatalogOverlay CatalogOverlay { get; set; } = new();
|
||||||
private ProductHistoryOverlay ProductOverlay { get; set; } = new();
|
private ProductHistoryOverlay ProductOverlay { get; set; } = new();
|
||||||
private ProductPriceHistoryOverlay PriceOverlay { 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 CustomerInvoiceListOverlay InvoiceListOverlay { get; set; } = new();
|
||||||
private CustomerInventoryListOverlay InventoryListOverlay { get; set; } = new();
|
private CustomerInventoryListOverlay InventoryListOverlay { get; set; } = new();
|
||||||
private CustomerActivityListOverlay ActivityListOverlay { get; set; } = new();
|
private CustomerActivityListOverlay ActivityListOverlay { get; set; } = new();
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------
|
||||||
|
// lists
|
||||||
private List<ProductInventoryView> Inventory { get; set; } = new();
|
private List<ProductInventoryView> Inventory { get; set; } = new();
|
||||||
private List<ProductInventoryView> CheckList { get; set; } = new();
|
private List<ProductInventoryView> CheckList { get; set; } = new();
|
||||||
private InvoiceListView CompanyInvoices { get; set; } = new();
|
private InvoiceListView CompanyInvoices { get; set; } = new();
|
||||||
|
|
||||||
private List<ReportItemView> Activities { get; set; } = new();
|
private List<ReportItemView> Activities { get; set; } = new();
|
||||||
|
|
||||||
|
|
||||||
|
@ -142,9 +153,40 @@ public partial class OfficeOrderCreatePage : IDisposable
|
||||||
Working = false;
|
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)
|
private async Task PriceListCallback(SelectedSku sku)
|
||||||
|
@ -159,6 +201,11 @@ public partial class OfficeOrderCreatePage : IDisposable
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CallPriceListModal()
|
||||||
|
{
|
||||||
|
CatalogOverlay.Show();
|
||||||
|
}
|
||||||
|
|
||||||
private void ShowInvoiceOverlay()
|
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()
|
private void CreateActivity()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue