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 id="this-draft" style="@(Activity.ActivityStatusEnum is "order" or "quote" ? "display: block" : "display:none")">
|
||||
<div id="this-draft" >
|
||||
@* Order lines -----------------------------------------------------*@
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
@ -190,9 +190,11 @@
|
|||
<td class="align-middle">
|
||||
<div class="input-group">
|
||||
<input type="number" class="form-control" @bind-value="@Price"/>
|
||||
@*
|
||||
<button class="btn btn-warning" type="button" @onclick="CallPriceHistoryModal">
|
||||
<i class="bi-list-ul"></i>
|
||||
</button>
|
||||
*@
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
|
@ -200,7 +202,8 @@
|
|||
</td>
|
||||
<td class="align-middle">@SelectedItem.Sku</td>
|
||||
<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>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -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<OfficeOrderCreatePage> 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<ProductInventoryView> Inventory { get; set; } = new();
|
||||
private List<ProductInventoryView> CheckList { get; set; } = new();
|
||||
private InvoiceListView CompanyInvoices { get; set; } = new();
|
||||
|
||||
private List<ReportItemView> 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()
|
||||
{
|
||||
|
||||
|
|
Loading…
Reference in a new issue