release 0.28
This commit is contained in:
parent
4bfb9a7757
commit
48e07d41ca
8 changed files with 148 additions and 102 deletions
|
@ -18,6 +18,7 @@
|
|||
@if (Inventory.Any())
|
||||
{
|
||||
<table class="table table-striped">
|
||||
@*
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">
|
||||
|
@ -34,6 +35,7 @@
|
|||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
*@
|
||||
<tbody>
|
||||
@foreach (var product in Inventory)
|
||||
{
|
||||
|
@ -48,7 +50,7 @@
|
|||
@product.Quantity
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<button class="btn btn-info" type="button" @onclick="() => CallShowReorderModal(product.Sku)">Historik</button>
|
||||
<a class="btn btn-dark d-block" type="button" @onclick="() => CallShowReorderModal(product.Sku)">Historik</a>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
|
|
@ -250,6 +250,7 @@ else
|
|||
}
|
||||
</div>
|
||||
</div>
|
||||
@* end draft line ------------------------------------------------- *@
|
||||
</div>
|
||||
<div class="accordion" id="crmActivity">
|
||||
@*
|
||||
|
|
|
@ -298,6 +298,7 @@ public partial class CrmActivityNewPage : IDisposable
|
|||
private async Task DeleteDraft()
|
||||
{
|
||||
await DraftStateProvider.DeleteDraftAsync();
|
||||
Activity.ActivityStatusEnum = "noSale";
|
||||
}
|
||||
/// <summary>
|
||||
/// Add item to draft
|
||||
|
@ -322,6 +323,8 @@ public partial class CrmActivityNewPage : IDisposable
|
|||
Discount = "0";
|
||||
// add it to the cart
|
||||
DraftStateProvider.Draft.Items.Add(item);
|
||||
if(Activity.ActivityStatusEnum != "quote")
|
||||
Activity.ActivityStatusEnum = "order";
|
||||
// save the item using the CartStateProvider's save method
|
||||
await DraftStateProvider.SaveChangesAsync();
|
||||
}
|
||||
|
@ -335,6 +338,8 @@ public partial class CrmActivityNewPage : IDisposable
|
|||
DraftStateProvider.Draft.Items.Remove(item);
|
||||
// save the remaining draft
|
||||
await DraftStateProvider.SaveChangesAsync();
|
||||
if (!DraftStateProvider.Draft.Items.Any())
|
||||
Activity.ActivityStatusEnum = "noSale";
|
||||
}
|
||||
/// <summary>
|
||||
/// Edit Context handle field change
|
||||
|
|
|
@ -26,7 +26,23 @@
|
|||
@if (_activities.Any())
|
||||
{
|
||||
<div class="list-group">
|
||||
|
||||
<div class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Dato</h4>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h4>Demo</h4>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h4>Salg</h4>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h4>Note /Kontor</h4>
|
||||
</div>
|
||||
<div class="col">Note /Selv</div>
|
||||
</div>
|
||||
</div>
|
||||
@foreach (var activity in _activities)
|
||||
{
|
||||
<div class="list-group-item">
|
||||
|
@ -41,7 +57,10 @@
|
|||
@activity.Sales
|
||||
</div>
|
||||
<div class="col">
|
||||
@activity.VisitTypeEnum
|
||||
@activity.OfficeNote
|
||||
</div>
|
||||
<div class="col">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -203,7 +203,7 @@
|
|||
<a class="btn btn-light border-dark d-block" href="/companies">Kundeliste</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-light border-dark d-block" href="/companies/@_company.CompanyId/activities">Aktivitet</a>
|
||||
<a class="btn btn-light border-dark d-block" href="/companies/@_company.CompanyId/activities">Besøg oversigt</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-light border-dark d-block" href="/companies/@_company.CompanyId/h/i">Produktkøb</a>
|
||||
|
|
|
@ -20,40 +20,65 @@
|
|||
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">@ProductName</h5>
|
||||
<h4 class="modal-title">@SalesItem.Name @SalesItem.Sku</h4>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@* draft line ----------------------------------------------------- *@
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<table id="draft-line" class="table table-bordered">
|
||||
<thead>
|
||||
<tr class="bg-dark text-white">
|
||||
<th scope="col" colspan="6">BESTILLING</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">Antal</th>
|
||||
<th scope="col">Pris</th>
|
||||
<th scope="col">Rabat</th>
|
||||
<th class="align-content-center justify-content-center" scope="col">SAS</th>
|
||||
<th scope="col"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="align-middle">
|
||||
<input type="number" class="form-control" @bind-value="@SelectedItem.Quantity"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<div class="input-group">
|
||||
<input type="number" class="form-control" @bind-value="@SelectedItem.Price"/>
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<input type="number" class="form-control" @bind-value="@SelectedItem.Discount"/>
|
||||
</td>
|
||||
<td class="align-middle align-content-center justify-content-center">
|
||||
<input type="checkbox" class="form-check" @bind-value="@SelectedItem.Sas"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<button type="button" class="btn btn-warning text-nowrap d-block" @onclick="@(() => SendToOrder(SelectedItem))">BESTIL</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@* end draft line ------------------------------------------------- *@
|
||||
@* price list item ------------------------------------------------ *@
|
||||
<div class="row align-middle">
|
||||
<div class="col-sm-4 text-sm-start">
|
||||
@SalesItem.Name
|
||||
</div>
|
||||
<div class="col-sm-2 text-sm-start">
|
||||
@SalesItem.Sku
|
||||
</div>
|
||||
<div class="col-sm-2 text-sm-start">
|
||||
@SalesItem.ShortName
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<ul class="list-group">
|
||||
@foreach (var rate in SalesItem.Rates)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between align-items-end">
|
||||
<div class="text-sm-end me-1">@rate.Quantity</div>
|
||||
<div class="text-sm-end me-1">@rate.Rate</div>
|
||||
<div>
|
||||
<a class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="@(() => SelectItem(rate.Quantity, rate.Rate))">
|
||||
<i class="oi oi-plus"></i>
|
||||
<div class="col">
|
||||
<a type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="@(() => SelectPrice(rate.Quantity, rate.Rate))">
|
||||
@rate.Quantity <i class="bi-at"></i> @rate.Rate/stk
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@* end price list item -------------------------------------------- *@
|
||||
|
||||
@if (!string.IsNullOrWhiteSpace(ProductName))
|
||||
{
|
||||
@* product history ------------------------------------------------ *@
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -68,22 +93,18 @@
|
|||
@foreach (var entry in History)
|
||||
{
|
||||
<tr>
|
||||
<td>@entry.DeliveryDate</td>
|
||||
<td>@entry.Quantity</td>
|
||||
<td>@entry.Discount</td>
|
||||
<td>@entry.Price</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" @onclick="() => SelectLine(entry)">Overfør</button>
|
||||
<td class="align-middle">@entry.DeliveryDate</td>
|
||||
<td class="align-middle">@entry.Quantity</td>
|
||||
<td class="align-middle">@entry.Discount</td>
|
||||
<td class="align-middle">@entry.Price</td>
|
||||
<td class="align-middle">
|
||||
<button type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="() => SelectHistory(entry)"><i class="bi-plus"></i> VÆLG</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
else
|
||||
{
|
||||
<h3>Ingen data</h3>
|
||||
}
|
||||
@* end product history -------------------------------------------- *@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -30,13 +30,13 @@ public partial class InventoryReorderModal
|
|||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Parameter] public SalesItemView SalesItem { get; set; } = new();
|
||||
[Inject] public ICrmHistoryHttpRepository CrmHistoryRepo { get; set; }
|
||||
|
||||
[Parameter] public EventCallback<DraftItem> OnSelected { get; set; }
|
||||
|
||||
private List<ProductHistoryView> History { get; set; }
|
||||
private List<ProductHistoryView> History { get; set; } = new();
|
||||
private DraftItem SelectedItem { get; set; } = new();
|
||||
private string ProductName { get; set; } = "";
|
||||
private string _modalDisplay = "";
|
||||
private bool _showBackdrop;
|
||||
private bool ShowDraft { get; set; }
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
|
@ -44,36 +44,33 @@ public partial class InventoryReorderModal
|
|||
return;
|
||||
|
||||
History = await CrmHistoryRepo.FetchHistory(CompanyId, SalesItem.Sku);
|
||||
if (History.Any())
|
||||
{
|
||||
ProductName = History[0].Description;
|
||||
}
|
||||
SelectedItem.Item = SalesItem;
|
||||
SelectedItem.Discount = 0;
|
||||
SelectedItem.Quantity = 1;
|
||||
SelectedItem.Price = decimal.Parse(SalesItem.Rates[0].Rate, CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
private void SelectItem(string quantity, string rate)
|
||||
private async Task SendToOrder(DraftItem item)
|
||||
{
|
||||
var result = new DraftItem
|
||||
{
|
||||
Discount = 0,
|
||||
Item = SalesItem,
|
||||
Price = decimal.Parse(rate, CultureInfo.InvariantCulture),
|
||||
Quantity = int.Parse(quantity)
|
||||
};
|
||||
OnSelected.InvokeAsync(result);
|
||||
SelectedItem = new DraftItem();
|
||||
await OnSelected.InvokeAsync(item);
|
||||
Hide();
|
||||
}
|
||||
|
||||
private void SelectLine(ProductHistoryView item)
|
||||
private void SelectPrice(string quantity, string rate)
|
||||
{
|
||||
var result = new DraftItem
|
||||
SelectedItem.Discount = 0;
|
||||
SelectedItem.Price = decimal.Parse(rate, CultureInfo.InvariantCulture);
|
||||
SelectedItem.Quantity = int.Parse(quantity);
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private void SelectHistory(ProductHistoryView item)
|
||||
{
|
||||
Discount = item.Discount,
|
||||
Item = SalesItem,
|
||||
Price = item.Price,
|
||||
Quantity = item.Quantity,
|
||||
};
|
||||
OnSelected.InvokeAsync(result);
|
||||
Hide();
|
||||
SelectedItem.Discount = item.Discount;
|
||||
SelectedItem.Price = item.Price;
|
||||
SelectedItem.Quantity = item.Quantity;
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
public void Show()
|
||||
|
@ -85,6 +82,7 @@ public partial class InventoryReorderModal
|
|||
|
||||
private void Hide()
|
||||
{
|
||||
SelectedItem = new DraftItem();
|
||||
_modalDisplay = "none;";
|
||||
_showBackdrop = false;
|
||||
StateHasChanged();
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"appInfo": {
|
||||
"name": "Wonky Client",
|
||||
"version": "0.27.2",
|
||||
"rc": true,
|
||||
"version": "0.28.0",
|
||||
"rc": false,
|
||||
"sandBox": false,
|
||||
"image": "grumpy-coder.png"
|
||||
},
|
||||
"apiConfig": {
|
||||
"innoBaseUrl": "https://dev.innotec.dk",
|
||||
"innoBaseUrl": "https://app.innotec.dk",
|
||||
"glsTrackUrl": "https://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DK01/DA/5004.htm?txtAction=71000&txtRefNo=",
|
||||
"glsId": "",
|
||||
"serviceVirk": "api/v2/services/virk",
|
||||
|
|
Loading…
Reference in a new issue