rebuild v0.2.36
This commit is contained in:
parent
d54b3d9b55
commit
327aecaffe
3 changed files with 356 additions and 328 deletions
|
@ -17,7 +17,7 @@
|
|||
<span class="version">@Name</span> <span class="version">@Version</span>@if(IsBeta){<span class="version">-beta</span>}
|
||||
@code
|
||||
{
|
||||
private const string Version = "0.2.34";
|
||||
private const string Version = "0.2.36";
|
||||
private const string Name = "wwo";
|
||||
private const bool IsBeta = true;
|
||||
}
|
||||
|
|
|
@ -26,344 +26,351 @@
|
|||
<DataAnnotationsValidator/>
|
||||
|
||||
<div class="accordion-flush" id="crmActivity">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="activityHeader">
|
||||
<button class="accordion-button bg-light" type="button"
|
||||
data-bs-toggle="collapse" data-bs-target="#activityBody"
|
||||
aria-expanded="true" aria-controls="activityBody">
|
||||
Aktivitet
|
||||
</button>
|
||||
</h2>
|
||||
<div id="activityBody" class="accordion-collapse collapse show"
|
||||
aria-labelledby="activityHeader" data-bs-parent="#crmActivity">
|
||||
<div class="accordion-body">
|
||||
<div class="row mb-1">
|
||||
<label for="account" class="col-md-2 col-form-label">Konto</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="account" class="form-control" @bind-Value="_poDraft.Account" readonly/>
|
||||
<ValidationMessage For="@(() => _poDraft.Account)"></ValidationMessage>
|
||||
</div>
|
||||
<label for="salesRep" class="col-md-2 col-form-label">Sælger</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="salesRep" class="form-control" @bind-Value="_poDraft.SalesRep" readonly/>
|
||||
<ValidationMessage For="@(() => _poDraft.SalesRep)"></ValidationMessage>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="activityHeader">
|
||||
<button class="accordion-button bg-light" type="button"
|
||||
data-bs-toggle="collapse" data-bs-target="#activityBody"
|
||||
aria-expanded="true" aria-controls="activityBody">
|
||||
Aktivitet
|
||||
</button>
|
||||
</h2>
|
||||
<div id="activityBody" class="accordion-collapse collapse show"
|
||||
aria-labelledby="activityHeader" data-bs-parent="#crmActivity">
|
||||
<div class="accordion-body">
|
||||
<div class="row mb-1">
|
||||
<label for="account" class="col-md-2 col-form-label">Konto</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="account" class="form-control" @bind-Value="_poDraft.Account" readonly/>
|
||||
<ValidationMessage For="@(() => _poDraft.Account)"></ValidationMessage>
|
||||
</div>
|
||||
|
||||
<div class="row mb-1">
|
||||
<label for="activityType" class="col-md-2 col-form-label">Kontakt</label>
|
||||
<div class="col-md-4">
|
||||
<select id="activityType" class="form-select" @bind-Value="@_poDraft.ActivityTypeEnum" @bind-Value:event="oninput" @onchange="CheckActivity">
|
||||
<option value="" selected>VÆLG</option>
|
||||
<option value="onSite">Besøg</option>
|
||||
<option value="phone">Telefon</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="statusType" class="col-md-2 col-form-label">Status</label>
|
||||
<div class="col-md-4">
|
||||
<select id="statusType" class="form-select" @bind-Value="@_poDraft.ActivityStatusEnum" @bind-Value:event="oninput" @onchange="CheckStatus">
|
||||
<option value="" selected>VÆLG</option>
|
||||
<option value="order">Ordre</option>
|
||||
<option value="offer">Tilbud</option>
|
||||
<option value="canvas">Kanvas</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-1">
|
||||
<label for="vatNumber" class="col-md-2 col-form-label">Momsnr.</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="vatNumber" class="form-control" @bind-Value="_poDraft.VatNumber"/>
|
||||
<ValidationMessage For="@(() => _poDraft.VatNumber)"></ValidationMessage>
|
||||
</div>
|
||||
<label for="email" class="col-md-2 col-form-label">EMail</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="email" class="form-control" @bind-Value="_poDraft.EMail"/>
|
||||
<ValidationMessage For="@(() => _poDraft.EMail)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="activityDate" class="col-md-2 col-form-label">Dato</label>
|
||||
<div class="col-md-4">
|
||||
<InputDate id="activityDate" class="form-control" @bind-Value="@(_poDraft.ActivityDate)"/>
|
||||
</div>
|
||||
<label for="checkDate" class="col-md-2 form-check-label">Bekræft dato?</label>
|
||||
<div class="col-md-4">
|
||||
<InputCheckbox id="checkDate" class="form-check-input" @bind-Value="@_poDraft.CheckDate" @onclick="CheckDate"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="demo" class="col-md-2 col-form-label">Demo</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="demo" class="form-control" @bind-Value="_poDraft.Demo"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="referenceNumber" class="col-md-2 col-form-label">Rekvisition</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="referenceNumber" class="form-control" @bind-Value="_poDraft.ReferenceNumber"v/>
|
||||
<ValidationMessage For="@(() => _poDraft.ReferenceNumber)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="yourRef" class="col-md-2 col-form-label">Indkøber</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="yourRef" class="form-control" @bind-Value="_poDraft.YourRef"/>
|
||||
<ValidationMessage For="@(() => _poDraft.YourRef)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="orderMessage" class="col-md-2 col-form-label">Eksp. note</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="orderMessage" class="form-control" @bind-Value="_poDraft.OrderMessage"/>
|
||||
<ValidationMessage For="@(() => _poDraft.OrderMessage)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="crmNote" class="col-md-2 col-form-label">CRM note</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="crmNote" class="form-control" @bind-Value="_poDraft.CrmNote"/>
|
||||
<ValidationMessage For="@(() => _poDraft.CrmNote)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="attention" class="col-md-2 col-form-label">Att.</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="attention" class="form-control" @bind-Value="_poDraft.Attention"/>
|
||||
<ValidationMessage For="@(() => _poDraft.Attention)"></ValidationMessage>
|
||||
</div>
|
||||
<label for="salesRep" class="col-md-2 col-form-label">Sælger</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="salesRep" class="form-control" @bind-Value="_poDraft.SalesRep" readonly/>
|
||||
<ValidationMessage For="@(() => _poDraft.SalesRep)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@* Leverings adresse *@
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="deliveryHeader">
|
||||
<button class="accordion-button collapsed bg-light" type="button"
|
||||
data-bs-toggle="collapse" data-bs-target="#deliveryBody"
|
||||
aria-expanded="false" aria-controls="deliveryBody">
|
||||
Leveringsadresse
|
||||
</button>
|
||||
</h2>
|
||||
<div id="deliveryBody" class="accordion-collapse collapse"
|
||||
aria-labelledby="deliveryHeader" data-bs-parent="#crmActivity">
|
||||
<div class="accordion-body">
|
||||
<div class="row mb-1">
|
||||
<label for="dlvName" class="col-md-2 col-form-label">Lev. Navn</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvName" class="form-control" @bind-Value="_poDraft.DlvName"/>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="activityType" class="col-md-2 col-form-label">Kontakt</label>
|
||||
<div class="col-md-4">
|
||||
<select id="activityType" class="form-select" @bind-Value="@_poDraft.ActivityTypeEnum" @bind-Value:event="oninput" @onchange="CheckActivity">
|
||||
<option value="" selected>VÆLG</option>
|
||||
<option value="onSite">Besøg</option>
|
||||
<option value="phone">Telefon</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvAddress1" class="col-md-2 col-form-label">Lev. Adresse</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvAddress1" class="form-control" @bind-Value="_poDraft.DlvAddress"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvAddress2" class="col-md-2 col-form-label">Lev. Adresse</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvAddress2" class="form-control" @bind-Value="_poDraft.DlvAddress2"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvZipCode" class="col-md-2 col-form-label">Lev. Postnr</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvZipCode" class="form-control" @bind-Value="_poDraft.DlvZipCode"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvCity" class="col-md-2 col-form-label">Lev. Bynavn</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvCity" class="form-control" @bind-Value="_poDraft.DlvCity"/>
|
||||
</div>
|
||||
<label for="statusType" class="col-md-2 col-form-label">Status</label>
|
||||
<div class="col-md-4">
|
||||
<select id="statusType" class="form-select" @bind-Value="@_poDraft.ActivityStatusEnum" @bind-Value:event="oninput" @onchange="CheckStatus">
|
||||
<option value="" selected>VÆLG</option>
|
||||
<option value="order">Ordre</option>
|
||||
<option value="offer">Tilbud</option>
|
||||
<option value="canvas">Kanvas</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@* Ordder lines *@
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="catalogHeader">
|
||||
<button class="accordion-button collapsed bg-light" type="button"
|
||||
data-bs-toggle="collapse" data-bs-target="#catalogBody"
|
||||
aria-expanded="false" aria-controls="catalogBody">
|
||||
Varelinjer
|
||||
</button>
|
||||
</h2>
|
||||
<div id="catalogBody" class="accordion-collapse collapse"
|
||||
aria-labelledby="catalogHeader" data-bs-parent="#crmActivity">
|
||||
<div class="accordion-body">
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<ItemGroupDropdown OnChanged="SetItemGroup"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSearchDropdown OnChanged="SetSearchCol"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnChanged="SetSortCol"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="vatNumber" class="col-md-2 col-form-label">Momsnr.</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="vatNumber" class="form-control" @bind-Value="_poDraft.VatNumber"/>
|
||||
<ValidationMessage For="@(() => _poDraft.VatNumber)"></ValidationMessage>
|
||||
</div>
|
||||
@if (SalesItems.Any())
|
||||
{
|
||||
<table class="table table-hover table-striped justify-content-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Navn</th>
|
||||
<th scope="col" class="text-nowrap">Varenr</th>
|
||||
<th scope="col" class="text-nowrap">Fork</th>
|
||||
<th scope="col">Stk / Pris</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in SalesItems)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.Name</td>
|
||||
<td>@item.Sku</td>
|
||||
<td>@item.ShortName</td>
|
||||
<td>
|
||||
<ul class="list-group">
|
||||
@foreach (var rate in item.Rates)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between align-items-end">
|
||||
<div class="text-sm-start px-2">@rate.Quantity</div>
|
||||
<div class="text-sm-end">@rate.Rate</div>
|
||||
<button class="btn btn-primary" @onclick="@(() => SelectItem(item.ItemId, rate.Quantity, rate.Rate))">Vælg</button>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
else
|
||||
{
|
||||
<AppSpinner/>
|
||||
}
|
||||
@if (_selectedItem != null && ShowItem)
|
||||
{
|
||||
<div class="card mb-3 mt-3">
|
||||
<div class="card-header bg-dark fw-bold text-white">Kladdelinje</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col col-md-4 fw-bold">
|
||||
Varenavn
|
||||
</div>
|
||||
<div class="col fw-bold">
|
||||
Varenr
|
||||
</div>
|
||||
<div class="col fw-bold">
|
||||
Antal
|
||||
</div>
|
||||
<div class="col fw-bold">
|
||||
Pris
|
||||
</div>
|
||||
<div class="col">
|
||||
Rabat
|
||||
</div>
|
||||
<div class="col">
|
||||
SAS
|
||||
</div>
|
||||
<div class="col">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col col-md-4">
|
||||
@_selectedItem.Name
|
||||
</div>
|
||||
<div class="col">
|
||||
@_selectedItem.Sku
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="number" class="form-control" @bind-value="@Quantity"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="number" class="form-control" @bind-value="@Price"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="number" class="form-control" @bind-value="@Discount"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="checkbox" class="form-check" @bind-value="@Sas"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-info" @onclick="@(() => AddItem(_selectedItem))">Læg til</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@* Ordrekladde *@
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
Kladdelinjer <span class="mx-2 draft-expires-msg">Global kladde (udløber efter @(DraftStateProvider.Draft.TimeToLiveInSeconds / 60)m inaktivitet)</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover table-striped justify-content-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Navn</th>
|
||||
<th scope="col" class="text-nowrap">Varenr</th>
|
||||
<th scope="col" class="text-end">Antal</th>
|
||||
<th scope="col" class="text-end">Enhedspris</th>
|
||||
<th scope="col" class="text-end">Linjesum</th>
|
||||
<th scope="col"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if (DraftStateProvider != null && DraftStateProvider.Draft.Items.Count > 0)
|
||||
{
|
||||
@foreach (var cItem in DraftStateProvider.Draft.Items)
|
||||
{
|
||||
<tr>
|
||||
<td>@cItem.Item.Name</td>
|
||||
<td>@cItem.Item.Sku</td>
|
||||
<td class="text-end">@cItem.Quantity</td>
|
||||
<td class="text-end">@cItem.Price</td>
|
||||
<td class="text-end">@cItem.LineTotal</td>
|
||||
<td>
|
||||
<input type="checkbox" checked="@cItem.Sas" disabled/>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn btn-warning" @onclick="@(() => RemoveItem(@cItem))">Slet</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="text-black text-end fw-bold">Total</td>
|
||||
<td class="text-black text-end fw-bold">@DraftStateProvider.Draft.Total</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="btn btn-danger" @onclick="@DeleteDraft" disabled="@(DraftStateProvider.Draft.Items.Count == 0)">Slet kladde</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<label for="email" class="col-md-2 col-form-label">EMail</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="email" class="form-control" @bind-Value="_poDraft.EMail"/>
|
||||
<ValidationMessage For="@(() => _poDraft.EMail)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="activityDate" class="col-md-2 col-form-label">Dato</label>
|
||||
<div class="col-md-4">
|
||||
<InputDate id="activityDate" class="form-control" @bind-Value="@(_poDraft.ActivityDate)"/>
|
||||
</div>
|
||||
<label for="checkDate" class="col-md-2 form-check-label">Bekræft dato?</label>
|
||||
<div class="col-md-4">
|
||||
<InputCheckbox id="checkDate" class="form-check-input" @bind-Value="@_poDraft.CheckDate" @onclick="CheckDate"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="demo" class="col-md-2 col-form-label">Demo</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="demo" class="form-control" @bind-Value="_poDraft.Demo"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="referenceNumber" class="col-md-2 col-form-label">Rekvisition</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="referenceNumber" class="form-control" @bind-Value="_poDraft.ReferenceNumber"v/>
|
||||
<ValidationMessage For="@(() => _poDraft.ReferenceNumber)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="yourRef" class="col-md-2 col-form-label">Indkøber</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="yourRef" class="form-control" @bind-Value="_poDraft.YourRef"/>
|
||||
<ValidationMessage For="@(() => _poDraft.YourRef)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="orderMessage" class="col-md-2 col-form-label">Eksp. note</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="orderMessage" class="form-control" @bind-Value="_poDraft.OrderMessage"/>
|
||||
<ValidationMessage For="@(() => _poDraft.OrderMessage)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="crmNote" class="col-md-2 col-form-label">CRM note</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="crmNote" class="form-control" @bind-Value="_poDraft.CrmNote"/>
|
||||
<ValidationMessage For="@(() => _poDraft.CrmNote)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="attention" class="col-md-2 col-form-label">Att.</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="attention" class="form-control" @bind-Value="_poDraft.Attention"/>
|
||||
<ValidationMessage For="@(() => _poDraft.Attention)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@* Leverings adresse *@
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="deliveryHeader">
|
||||
<button class="accordion-button collapsed bg-light" type="button"
|
||||
data-bs-toggle="collapse" data-bs-target="#deliveryBody"
|
||||
aria-expanded="false" aria-controls="deliveryBody">
|
||||
Leveringsadresse
|
||||
</button>
|
||||
</h2>
|
||||
<div id="deliveryBody" class="accordion-collapse collapse"
|
||||
aria-labelledby="deliveryHeader" data-bs-parent="#crmActivity">
|
||||
<div class="accordion-body">
|
||||
<div class="row mb-1">
|
||||
<label for="dlvName" class="col-md-2 col-form-label">Lev. Navn</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvName" class="form-control" @bind-Value="_poDraft.DlvName"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvAddress1" class="col-md-2 col-form-label">Lev. Adresse</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvAddress1" class="form-control" @bind-Value="_poDraft.DlvAddress"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvAddress2" class="col-md-2 col-form-label">Lev. Adresse</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvAddress2" class="form-control" @bind-Value="_poDraft.DlvAddress2"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvZipCode" class="col-md-2 col-form-label">Lev. Postnr</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvZipCode" class="form-control" @bind-Value="_poDraft.DlvZipCode"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<label for="dlvCity" class="col-md-2 col-form-label">Lev. Bynavn</label>
|
||||
<div class="col-md-10">
|
||||
<InputText id="dlvCity" class="form-control" @bind-Value="_poDraft.DlvCity"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@* Ordder lines *@
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" id="catalogHeader">
|
||||
<button class="accordion-button collapsed bg-light" type="button"
|
||||
data-bs-toggle="collapse" data-bs-target="#catalogBody"
|
||||
aria-expanded="false" aria-controls="catalogBody">
|
||||
Varelinjer
|
||||
</button>
|
||||
</h2>
|
||||
<div id="catalogBody" class="accordion-collapse collapse"
|
||||
aria-labelledby="catalogHeader" data-bs-parent="#crmActivity">
|
||||
<div class="accordion-body">
|
||||
<div class="row mb-1">
|
||||
<div class="col">
|
||||
<ItemGroupDropdown OnChanged="SetItemGroup"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSearchDropdown OnChanged="SetSearchCol"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ItemSortDropdown OnChanged="SetSortCol"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<PageSizeDropdown OnChanged="SetPageSize"></PageSizeDropdown>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
||||
</div>
|
||||
</div>
|
||||
@if (SalesItems.Any())
|
||||
{
|
||||
<table class="table table-hover table-striped justify-content-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Navn</th>
|
||||
<th scope="col" class="text-nowrap">Varenr</th>
|
||||
<th scope="col" class="text-nowrap">Fork</th>
|
||||
<th scope="col">Stk / Pris</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in SalesItems)
|
||||
{
|
||||
<tr>
|
||||
<td>@item.Name</td>
|
||||
<td>@item.Sku</td>
|
||||
<td>@item.ShortName</td>
|
||||
<td>
|
||||
<ul class="list-group">
|
||||
@foreach (var rate in item.Rates)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between align-items-end">
|
||||
<div class="text-sm-start px-2">@rate.Quantity</div>
|
||||
<div class="text-sm-end">@rate.Rate</div>
|
||||
<button class="btn btn-primary btn-sm" @onclick="@(() => SelectItem(item.ItemId, rate.Quantity, rate.Rate))">Vælg</button>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
else
|
||||
{
|
||||
<AppSpinner/>
|
||||
}
|
||||
@if (_selectedItem != null && ShowItem)
|
||||
{
|
||||
<div class="card mb-3 mt-3">
|
||||
<div class="card-header bg-dark fw-bold text-white">Kladdelinje</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col col-md-4 fw-bold">
|
||||
Varenavn
|
||||
</div>
|
||||
<div class="col fw-bold">
|
||||
Varenr
|
||||
</div>
|
||||
<div class="col fw-bold">
|
||||
Antal
|
||||
</div>
|
||||
<div class="col fw-bold">
|
||||
Pris
|
||||
</div>
|
||||
<div class="col">
|
||||
Rabat
|
||||
</div>
|
||||
<div class="col">
|
||||
SAS
|
||||
</div>
|
||||
<div class="col">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col col-md-4">
|
||||
@_selectedItem.Name
|
||||
</div>
|
||||
<div class="col">
|
||||
@_selectedItem.Sku
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="number" class="form-control" @bind-value="@Quantity"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="number" class="form-control" @bind-value="@Price"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="number" class="form-control" @bind-value="@Discount"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<input type="checkbox" class="form-check" @bind-value="@Sas"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-info" @onclick="@(() => AddItem(_selectedItem))">Læg til</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@* Ordrekladde *@
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
Kladdelinjer <span class="mx-2 draft-expires-msg">Global kladde (udløber efter @(DraftStateProvider.Draft.TimeToLiveInSeconds / 60)m inaktivitet)</span>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover table-striped justify-content-center">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Navn</th>
|
||||
<th scope="col" class="text-nowrap">Varenr</th>
|
||||
<th scope="col" class="text-end">Antal</th>
|
||||
<th scope="col" class="text-end">Enhedspris</th>
|
||||
<th scope="col" class="text-end">Linjesum</th>
|
||||
<th scope="col"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if (DraftStateProvider != null && DraftStateProvider.Draft.Items.Count > 0)
|
||||
{
|
||||
@foreach (var cItem in DraftStateProvider.Draft.Items)
|
||||
{
|
||||
<tr>
|
||||
<td>@cItem.Item.Name</td>
|
||||
<td>@cItem.Item.Sku</td>
|
||||
<td class="text-end">@cItem.Quantity</td>
|
||||
<td class="text-end">@cItem.Price</td>
|
||||
<td class="text-end">@cItem.LineTotal</td>
|
||||
<td>
|
||||
<input type="checkbox" checked="@cItem.Sas" disabled/>
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn btn-warning" @onclick="@(() => RemoveItem(@cItem))">Slet</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="text-black text-end fw-bold">Total</td>
|
||||
<td class="text-black text-end fw-bold">@DraftStateProvider.Draft.Total</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="btn btn-danger" @onclick="@DeleteDraft" disabled="@(DraftStateProvider.Draft.Items.Count == 0)">Slet kladde</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt-2 mb-2">
|
||||
<div class="col">
|
||||
<a class="btn btn-primary" href="/company/@NgCompany.CompanyId">Tilbage</a>
|
||||
|
|
|
@ -42,7 +42,7 @@ public partial class CrmActivityCreate : IDisposable
|
|||
[Parameter] public string CompanyId { get; set; }
|
||||
private NgSalesItemView _selectedItem { get; set; } = new();
|
||||
private List<NgSalesItemView> SalesItems { get; set; } = new();
|
||||
// private MetaData _meta { get; set; } = new();
|
||||
private MetaData MetaData { get; set; } = new();
|
||||
private Preferences _prefs { get; set; } = new();
|
||||
private DtoNgActivity _poDraft { get; set; } = new();
|
||||
private DtoNgCompany NgCompany = new();
|
||||
|
@ -75,6 +75,7 @@ public partial class CrmActivityCreate : IDisposable
|
|||
Interceptor.RegisterBeforeSendEvent();
|
||||
_prefs = await UserPrefs.GetPreferences();
|
||||
_paging.SearchColumn = _prefs.ItemSearch;
|
||||
_paging.PageSize = Convert.ToInt32(_prefs.PageSize);
|
||||
await GetSalesItems();
|
||||
Ux = await StorageService.GetItemAsync<UserInfoView>("_xu");
|
||||
NgCompany = await CompanyRepo.GetCompanyById(CompanyId);
|
||||
|
@ -218,19 +219,39 @@ public partial class CrmActivityCreate : IDisposable
|
|||
_paging.SearchColumn = columnName;
|
||||
await GetSalesItems();
|
||||
}
|
||||
private async Task SetSortCol(string searchTerm)
|
||||
private async Task SetSortCol(string orderBy)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_paging.OrderBy = orderBy;
|
||||
await GetSalesItems();
|
||||
}
|
||||
private async Task SetSearchPhrase(string searchTerm)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SearchTerm = searchTerm;
|
||||
await GetSalesItems();
|
||||
}
|
||||
private async Task SelectedPage(int page)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_paging.PageNumber = page;
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_paging.PageSize = Convert.ToInt32(pageSize);
|
||||
_paging.PageNumber = 1;
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
||||
private async Task GetSalesItems()
|
||||
{
|
||||
_paging.PageSize = 5;
|
||||
var response = await ItemRepo.GetSalesItemsPaged(_paging);
|
||||
SalesItems = response.Items!;
|
||||
// _meta = response.MetaData;
|
||||
MetaData = response.MetaData;
|
||||
}
|
||||
|
||||
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
||||
|
|
Loading…
Reference in a new issue