code quality cleanup - refactor onclick
events - added demo to kanvas visit
This commit is contained in:
parent
6aa1df56a3
commit
f691f020d2
74 changed files with 261 additions and 210 deletions
|
@ -33,7 +33,7 @@
|
|||
<tbody>
|
||||
@foreach (var company in CompanyList)
|
||||
{
|
||||
<tr @onclick="() => { ViewCustomer(company.CompanyId); }" style="cursor: pointer">
|
||||
<tr onclick="@(() => { ViewCustomer(company.CompanyId); })" style="cursor: pointer">
|
||||
<td class="state align-middle">
|
||||
<DisplayStateComponent StateClass="@(company.HasFolded == 1 ? "the-dead" : Utils.GetVisitState(company.NextVisit))"/>
|
||||
</td>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
{
|
||||
@foreach (var activity in Activities)
|
||||
{
|
||||
<div class="list-group-item list-group-item-action" style="cursor: pointer" @onclick="() => ShowVisitOverlay(activity.ActivityId)">
|
||||
<div class="list-group-item list-group-item-action" style="cursor: pointer" onclick="@(() => ShowVisitOverlay(activity.ActivityId))">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@activity.OrderDate
|
||||
|
|
|
@ -23,9 +23,9 @@
|
|||
<div class="list-group mt-2">
|
||||
<div class="list-group-item d-print-none">
|
||||
<div class="row">
|
||||
<div class="col-sm-4" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Desc)"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Sku)"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Qty)"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-4" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Desc))"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Sku))"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Qty))"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"></div>
|
||||
</div>
|
||||
|
@ -51,9 +51,9 @@
|
|||
@product.Quantity
|
||||
</div>
|
||||
<div class="col-sm-2 d-print-none">
|
||||
<a class="btn btn-info d-block" type="button" @onclick="() => CallShowReorderModal(product.Sku)"><i class="bi-cart"></i> Genbestil</a>
|
||||
<button type="button" class="btn btn-info d-block" onclick="@(() => CallShowReorderModal(product.Sku))"><i class="bi-cart"></i> Genbestil</button>
|
||||
</div>
|
||||
<div class="col-sm-1 d-print-none" @onclick="() => ProductCheck(product.Sku)">
|
||||
<div class="col-sm-1 d-print-none" onclick="@(() => ProductCheck(product.Sku))">
|
||||
<input type="checkbox" class="btn-check" id="btn-@product.Sku.Replace(",", "")" autocomplete="off"/>
|
||||
@if (product.Check)
|
||||
{
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
</div>
|
||||
@foreach (var invoice in InvoiceList)
|
||||
{
|
||||
<div class="list-group-item list-group-item-action" @onclick="() => ShowInvoice(invoice.ArchiveHeadId)">
|
||||
<div class="list-group-item list-group-item-action" onclick="@(() => ShowInvoice(invoice.ArchiveHeadId))">
|
||||
<div class="row">
|
||||
<div class="col-md-2">@invoice.DocumentDate</div>
|
||||
<div class="col-md-2">@invoice.DocumentNumber</div>
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
<div class="list-group mt-2">
|
||||
<div class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col-sm-4" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Desc)"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Sku)"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Qty)"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-4" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Desc))"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Sku))"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Qty))"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"></div>
|
||||
</div>
|
||||
|
@ -44,7 +44,7 @@
|
|||
</div>
|
||||
<div class="col-sm-2">
|
||||
</div>
|
||||
<div class="col-sm-1" @onclick="() => ProductCheck(product.Sku)">
|
||||
<div class="col-sm-1" onclick="@(() => ProductCheck(product.Sku))">
|
||||
<input type="checkbox" class="btn-check" id="btn-@product.Sku.Replace(",", "")" autocomplete="off"/>
|
||||
@if (product.Check)
|
||||
{
|
||||
|
|
|
@ -51,13 +51,13 @@
|
|||
<div class="card-footer">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="btn btn-danger" @onclick="() => ShowInvoiceList(company.CompanyId)" >Faktura</button>
|
||||
<button class="btn btn-danger" onclick="@(() => ShowInvoiceList(company.CompanyId))" >Faktura</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-warning" @onclick="() => ShowActivityList(company.CompanyId)" >Aktivitet</button>
|
||||
<button class="btn btn-warning" onclick="@(() => ShowActivityList(company.CompanyId))" >Aktivitet</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button class="btn btn-success" @onclick="() => ShowInventory(company.CompanyId)">Produkt</button>
|
||||
<button class="btn btn-success" onclick="@(() => ShowInventory(company.CompanyId))">Produkt</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-primary" href="/office/customers/@company.CountryCode.ToLower()/@company.CompanyId/order" >Bestilling</a>
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
{
|
||||
@foreach (var activity in Activities)
|
||||
{
|
||||
<div class="list-group-item list-group-item-action" style="cursor: pointer" @onclick="() => ShowVisitOverlay(activity.ActivityId)">
|
||||
<div class="list-group-item list-group-item-action" style="cursor: pointer" onclick="@(() => ShowVisitOverlay(activity.ActivityId))">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@activity.OrderDate
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
<div class="list-group mt-2">
|
||||
<div class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col-sm-4" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Desc)"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Sku)"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Qty)"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-4" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Desc))"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Sku))"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Qty))"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"></div>
|
||||
</div>
|
||||
|
@ -52,7 +52,7 @@
|
|||
@product.Quantity
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<a class="btn btn-info d-block" type="button" @onclick="() => CallShowReorderModal(product.Sku)"><i class="bi-cart"></i> Genbestil</a>
|
||||
<button class="btn btn-info d-block" type="button" onclick="@(() => CallShowReorderModal(product.Sku))"><i class="bi-cart"></i> Genbestil</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
*@
|
||||
|
||||
|
||||
<select class="form-select bg-info text-bg-info" @bind-value="@PageSize" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||
<select class="form-select bg-info text-bg-info" @bind-value="PageSize" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||
<option value="-1" selected disabled>ANTAL svar</option>
|
||||
<option value="5">5 svar</option>
|
||||
<option value="10">10 svar</option>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<ul class="pagination justify-content-center">
|
||||
@foreach (var link in Links)
|
||||
{
|
||||
<li @onclick="() => OnSelectedPage(link)" style="cursor: pointer"
|
||||
<li onclick="@(() => OnSelectedPage(link))" style="cursor: pointer"
|
||||
class="page-item @(link.Enabled ? null : "disabled")
|
||||
@(link.Active ? "active" : null)">
|
||||
<span class="page-link" href="#">@link.Text</span>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<ul class="pagination justify-content-center">
|
||||
@foreach (var link in Links)
|
||||
{
|
||||
<li @onclick="() => OnSelectedPage(link)" style="cursor: pointer"
|
||||
<li onclick="@(() => OnSelectedPage(link))" style="cursor: pointer"
|
||||
class="page-item @(link.Enabled ? null : "disabled")
|
||||
@(link.Active ? "active" : null)">
|
||||
<span class="page-link" href="#">@link.Text</span>
|
||||
|
|
|
@ -52,18 +52,18 @@
|
|||
@quote.OrderDate
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QuoteStatus.Lose)">
|
||||
<button type="button" class="btn btn-outline-dark me-2" onclick="@(() => SetQuote(quote.ESalesNumber, QuoteStatus.Lose))">
|
||||
<i class="bi-trash-fill"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QuoteStatus.Archive)">
|
||||
<button type="button" class="btn btn-outline-dark me-2" onclick="@(() => SetQuote(quote.ESalesNumber, QuoteStatus.Archive))">
|
||||
<i class="bi-archive-fill"></i>
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QuoteStatus.Note)">
|
||||
<button type="button" class="btn btn-outline-dark me-2" onclick="@(() => SetQuote(quote.ESalesNumber, QuoteStatus.Note))">
|
||||
<i class="bi-tag-fill"></i>
|
||||
</button>
|
||||
@if (quote.QuoteStatusEnum == "None")
|
||||
{
|
||||
<button type="button" class="btn btn-success" @onclick="() => SetQuote(quote.ESalesNumber, QuoteStatus.Order)">
|
||||
<button type="button" class="btn btn-success" onclick="@(() => SetQuote(quote.ESalesNumber, QuoteStatus.Order))">
|
||||
<i class="bi-cart-fill"></i>
|
||||
</button>
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
@using Wonky.Entity.Views
|
||||
|
||||
<button type="button" aria-role="navigation" class="list-group-item list-group-item-action" style="cursor: pointer" @onclick="ShowReport">
|
||||
<button type="button" aria-role="navigation" class="list-group-item list-group-item-action" style="cursor: pointer" onclick="@(ShowReport)">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@Report.ReportDate
|
||||
|
|
|
@ -38,13 +38,13 @@
|
|||
@foreach (var activity in ActivityList)
|
||||
{
|
||||
<tr class="border-bottom">
|
||||
<td class="align-middle d-grid"><button aria-role="navigation" class="btn btn-info" @onclick="() => ShowDocument(activity.ActivityId)">@activity.Company.Name</button></td>
|
||||
<td class="align-middle d-grid"><button aria-role="navigation" class="btn btn-info" onclick="@(() => ShowDocument(activity.ActivityId))">@activity.Company.Name</button></td>
|
||||
<td class="align-middle">@activity.Company.City</td>
|
||||
<td class="align-middle">@activity.Demo</td>
|
||||
<td class="align-middle">@activity.Sales</td>
|
||||
<td class="align-middle fw-bold">@activity.OfficeNote</td>
|
||||
<td class="align-middle text-end">@($"{activity.SasAmount:N2}")</td>
|
||||
<td class="align-middle text-end">@(activity.StatusTypeEnum == "Quote" ? $"{0:N2}" : $"{activity.OrderAmount:N2}")</td>
|
||||
<td class="align-middle text-end">@(activity.StatusTypeEnum == "Quote" ? "{0:N2}" : $"{activity.OrderAmount:N2}")</td>
|
||||
<td class="align-middle text-center">
|
||||
@if (activity.OurRef.Contains("T:"))
|
||||
{<i style="font-size:1.3em;" class="bi-phone"></i>}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
*@
|
||||
|
||||
<select class="form-select bg-warning text-bg-warning" @bind-value="@SearchCol" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||
<select class="form-select bg-warning text-bg-warning" @bind-value="SearchCol" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||
<option value="-1" selected disabled>SØGNING</option>
|
||||
<option value="name">Navn</option>
|
||||
<option value="sku">Nummer</option>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<div class="input-group">
|
||||
<input id="search-input" type="text" class="form-control" placeholder="Søg ..." aria-described-by="search-addon"
|
||||
@bind-value="@SearchTerm" @bind-value:event="oninput" @onkeyup="OnSearchChanged" />
|
||||
<span class="input-group-text" id="search-addon"><i class="oi oi-delete" @onclick="ClearSearch"></i></span>
|
||||
@bind-value="SearchTerm" @bind-value:event="oninput" onkeyup="@OnSearchChanged" />
|
||||
<span class="input-group-text" id="search-addon"><i class="oi oi-delete" onclick="@ClearSearch"></i></span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
*@
|
||||
|
||||
<select class="form-select bg-success text-bg-success" @bind-value="@SortCol" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||
<select class="form-select bg-success text-bg-success" @bind-value="SortCol" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||
<option value="-1" selected disabled>SORTERING</option>
|
||||
<option value="name">Navn</option>
|
||||
<option value="sku">Varenr</option>
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
*@
|
||||
|
||||
<select class="form-select bg-warning text-bg-warning" @bind-value="@SearchCol" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
||||
<select class="form-select bg-warning text-bg-warning" @bind-value="SearchCol" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
||||
<option value="-1" disabled>SØGNING</option>
|
||||
<option value="name">Navn</option>
|
||||
<option value="city">Bynavn</option>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
<div class="input-group">
|
||||
<input id="search-input" type="text" class="form-control" placeholder="Søg ..." aria-described-by="search-addon"
|
||||
@bind-value="@SearchTerm" @bind-value:event="oninput" @onkeyup="OnSearchChanged" />
|
||||
<span class="input-group-text" id="search-addon"><i class="oi oi-delete" @onclick="ClearSearch"></i></span>
|
||||
@bind-value="SearchTerm" @bind-value:event="oninput" @onkeyup="OnSearchChanged" />
|
||||
<button class="input-group-text" id="search-addon"><i class="oi oi-delete" onclick="@ClearSearch"></i></button>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
*@
|
||||
|
||||
|
||||
<select class="form-select bg-success text-bg-success" @bind-value="@SortCol" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
||||
<select class="form-select bg-success text-bg-success" @bind-value="SortCol" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
||||
<option value="-1" selected disabled>SORTERING</option>
|
||||
<option value="name">Firma</option>
|
||||
<option value="city">Bynavn</option>
|
||||
|
|
|
@ -50,12 +50,12 @@
|
|||
</a>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<button type="button" class="btn btn-light border-dark" @onclick="() => CallConfirmationModal(task.TaskItemId)">
|
||||
<button type="button" class="btn btn-light border-dark" onclick="@(() => CallConfirmationModal(task.TaskItemId))">
|
||||
<i class="oi oi-circle-x"></i>
|
||||
</button>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<button type="button" class="btn btn-light border-dark" @onclick="() => TaskCompleted(task.TaskItemId)">
|
||||
<button type="button" class="btn btn-light border-dark" onclick="@(() => TaskCompleted(task.TaskItemId))">
|
||||
<i class="oi oi-check"></i>
|
||||
</button>
|
||||
</td>
|
||||
|
@ -70,7 +70,7 @@
|
|||
<td class="align-middle">
|
||||
@if (task.TaskTypeEnum is "Recall")
|
||||
{
|
||||
<button type="button" class="btn btn-primary" @onclick="() => CompleteTask(task.TaskItemId)">
|
||||
<button type="button" class="btn btn-primary" onclick="@(() => CompleteTask(task.TaskItemId))">
|
||||
<i class="oi oi-map-marker"></i>
|
||||
</button>
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<ValidationMessage For="@(() => Address.ZipCode)"/>
|
||||
</div>
|
||||
<div class="col-sm-2 text-end">
|
||||
<button class="btn btn-primary" type="button" @onclick="SubmitForm">HENT</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@SubmitForm">HENT</button>
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
|
@ -23,7 +23,7 @@
|
|||
<ValidationMessage For="@(() => ThisCompanyName)"/>
|
||||
</div>
|
||||
<div class="col-sm-2 text-end">
|
||||
<button class="btn btn-primary" type="button" @onclick="SubmitForm">HENT</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@SubmitForm">HENT</button>
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
|
@ -24,7 +24,7 @@
|
|||
</div>
|
||||
<div class="col-sm-6"></div>
|
||||
<div class="col-sm-2 text-end">
|
||||
<button class="btn btn-primary" type="button" @onclick="SubmitForm">HENT</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@SubmitForm">HENT</button>
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
|
@ -42,7 +42,7 @@
|
|||
<div class="col-sm-4 text-end">
|
||||
@if (ReadyToShip && Orders.Any())
|
||||
{
|
||||
<button type="button" class="btn btn-primary text-sm-center" @onclick="SetShipStatus">Sæt alle afsendt</button>
|
||||
<button type="button" class="btn btn-primary text-sm-center" onclick="@SetShipStatus">Sæt alle afsendt</button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -84,7 +84,7 @@
|
|||
@switch (order.ProcessStatusEnum.ToLower())
|
||||
{
|
||||
case "none":
|
||||
<button class="btn btn-outline-danger me-4" @onclick="() => QuickPak(order.OrderId)">QuickPak</button>
|
||||
<button class="btn btn-outline-danger me-4" onclick="@(() => QuickPak(order.OrderId))">QuickPak</button>
|
||||
<a class="btn btn-warning" href="warehouse/orders/process/@order.OrderId">Pluk varer</a>
|
||||
break;
|
||||
case "picked":
|
||||
|
|
|
@ -72,7 +72,7 @@ public class AuthenticationService : IAuthenticationService
|
|||
if (!response.IsSuccessStatusCode)
|
||||
return new AuthResponseView
|
||||
{
|
||||
IsSuccess = false, ErrorMessage = $"Kontroller indtastning"
|
||||
IsSuccess = false, ErrorMessage = "Kontroller indtastning"
|
||||
};
|
||||
|
||||
// process response content
|
||||
|
@ -99,20 +99,31 @@ public class AuthenticationService : IAuthenticationService
|
|||
public async Task<string> RefreshToken()
|
||||
{
|
||||
var refreshToken = await _infoService.GetRefreshToken();
|
||||
await Task.Delay(250);
|
||||
if (string.IsNullOrWhiteSpace(refreshToken))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
var credentials = new Dictionary<string, string>
|
||||
{
|
||||
["grant_type"] = "refresh_token",
|
||||
["refresh_token"] = refreshToken
|
||||
};
|
||||
|
||||
var response = await _client.PostAsync(_apiConfig.Value.ServicesAuth, new FormUrlEncodedContent(credentials));
|
||||
if (!response.IsSuccessStatusCode)
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
if (!response.IsSuccessStatusCode || string.IsNullOrWhiteSpace(content))
|
||||
{
|
||||
return string.Empty;
|
||||
|
||||
var resContent = await response.Content.ReadAsStringAsync();
|
||||
var data = JsonSerializer.Deserialize<AuthResponseView>(resContent, _options);
|
||||
|
||||
}
|
||||
|
||||
var data = JsonSerializer.Deserialize<AuthResponseView>(content, _options);
|
||||
|
||||
if (string.IsNullOrWhiteSpace(data.AccessToken))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
// set default request headers using access_token
|
||||
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", data.AccessToken);
|
||||
|
@ -124,12 +135,12 @@ public class AuthenticationService : IAuthenticationService
|
|||
|
||||
public async Task Logout()
|
||||
{
|
||||
var profileBackup = await _preference.GetProfile();
|
||||
Task.Delay(150);
|
||||
await _localStorage.ClearAsync();
|
||||
Task.Delay(150);
|
||||
await _preference.SetProfile(profileBackup);
|
||||
_client.DefaultRequestHeaders.Authorization = null;
|
||||
var profileBackup = await _preference.GetProfile();
|
||||
await Task.Delay(150);
|
||||
await _localStorage.ClearAsync();
|
||||
await Task.Delay(150);
|
||||
await _preference.SetProfile(profileBackup);
|
||||
((AuthStateProvider)_authStateProvider).NotifyUserLogout();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">@CompanyName - Aktivitet oversigt</h3>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<CustomerActivityListComponent Activities="Activities"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="card">
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">@CompanyName - Produktoversigt</h3>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<CustomerInventoryListComponent OnReorderSelected="OnReorderCallback" CompanyId="@CompanyId" Inventory="@Inventory"/>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">@SalesItem.Name @SalesItem.Sku (@SalesItem.BoxSize stk/colli)</h4>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@if (SalesItem.Discontinued)
|
||||
|
@ -49,21 +49,21 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td class="align-middle">
|
||||
<input type="number" class="form-control" @bind-value="@SelectedItem.Quantity"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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>
|
||||
<button type="button" class="btn btn-warning text-nowrap d-block" onclick="@(() => SendToOrder(SelectedItem))">BESTIL</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -76,7 +76,7 @@
|
|||
@foreach (var rate in SalesItem.Rates)
|
||||
{
|
||||
<div class="col">
|
||||
<a type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="@(() => SelectPrice(rate.Quantity, rate.Rate))">
|
||||
<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>
|
||||
|
@ -107,7 +107,9 @@
|
|||
<td class="align-middle">
|
||||
@if (!SalesItem.Discontinued)
|
||||
{
|
||||
<button type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="() => SelectHistory(entry)"><i class="bi-plus"></i> VÆLG</button>
|
||||
<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>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
{
|
||||
<h3 class="modal-title">@Company.Name - Faktura Oversigt</h3>
|
||||
}
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<CustomerInvoiceListComponent OnShowInvoice="@CallInvoiceModal" CompanyId="@Company.CompanyId" InvoiceList="@Invoices"/>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
{
|
||||
<h3 class="modal-title">Faktura @Invoice.DocumentNumber</h3>
|
||||
}
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@if (!string.IsNullOrWhiteSpace(Invoice.Company.Name))
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">@Company.Name - Aktivitet oversigt</h3>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@* activity list *@
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="card">
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">@SalesItem.Name @SalesItem.Sku (@SalesItem.BoxSize stk/colli)</h4>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@if (SalesItem.Discontinued)
|
||||
|
@ -49,21 +49,21 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td class="align-middle">
|
||||
<input type="number" class="form-control" @bind-value="@SelectedItem.Quantity"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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>
|
||||
<button type="button" class="btn btn-warning text-nowrap d-block" onclick="@(() => SendToOrder(SelectedItem))">BESTIL</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -76,7 +76,7 @@
|
|||
@foreach (var rate in SalesItem.Rates)
|
||||
{
|
||||
<div class="col">
|
||||
<a type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="@(() => SelectPrice(rate.Quantity, rate.Rate))">
|
||||
<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>
|
||||
|
@ -107,7 +107,7 @@
|
|||
<td class="align-middle">
|
||||
@if (!SalesItem.Discontinued)
|
||||
{
|
||||
<button type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="() => SelectHistory(entry)"><i class="bi-plus"></i> VÆLG</button>
|
||||
<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>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">@Company.Name - Faktura oversigt</h3>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@* component listing invoices*@
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Faktura</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@if (!string.IsNullOrWhiteSpace(Invoice.Company.Name))
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">@Company.Name - Produkt oversigt</h3>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
|
@ -30,9 +30,9 @@
|
|||
<div class="list-group mt-2">
|
||||
<div class="list-group-item bg-dark text-white">
|
||||
<div class="row">
|
||||
<div class="col-sm-4" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Desc)"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Sku)"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" @onclick="() => SortProducts(ProductSort.Qty)"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-4" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Desc))"><i class="bi-sort-alpha-down"></i> Navn <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-3" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Sku))"><i class="bi-sort-alpha-down"></i> Varenr <i class="bi-sort-alpha-up-alt"></i></div>
|
||||
<div class="col-sm-2 text-center" style="cursor: pointer;" onclick="@(() => SortProducts(ProductSort.Qty))"><i class="bi-sort-numeric-down"></i> Antal <i class="bi-sort-numeric-up-alt"></i></div>
|
||||
<div class="col-sm-2"></div>
|
||||
<div class="col-sm-1"></div>
|
||||
</div>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">@Company.Name - Produktoversigt</h3>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<OfficeInventoryListComponent OnReorderSelected="OnReorderCallback" CompanyId="@Company.CompanyId" Inventory="@Inventory"/>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">@SalesItem.Name @SalesItem.Sku (@SalesItem.BoxSize stk/colli)</h4>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@if (SalesItem.Discontinued)
|
||||
|
@ -49,21 +49,21 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td class="align-middle">
|
||||
<input type="number" class="form-control" @bind-value="@SelectedItem.Quantity"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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"/>
|
||||
<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>
|
||||
<button type="button" class="btn btn-warning text-nowrap d-block" onclick="@(() => SendToOrder(SelectedItem))">BESTIL</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -76,9 +76,9 @@
|
|||
@foreach (var rate in SalesItem.Rates)
|
||||
{
|
||||
<div class="col">
|
||||
<a type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="@(() => SelectPrice(rate.Quantity, rate.Rate))">
|
||||
<button 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>
|
||||
</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
@ -107,7 +107,7 @@
|
|||
<td class="align-middle">
|
||||
@if (!SalesItem.Discontinued)
|
||||
{
|
||||
<button type="button" class="btn btn-primary btn-sm" data-bs-dismiss="modal" @onclick="() => SelectHistory(entry)"><i class="bi-plus"></i> VÆLG</button>
|
||||
<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>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Pris Katalog</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="sticky-top bg-dark rounded-2 p-3">
|
||||
|
@ -79,7 +79,7 @@
|
|||
<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(item.SalesItemId, rate.Quantity, rate.Rate))">
|
||||
<a class="btn btn-primary btn-sm" data-bs-dismiss="modal" onclick="@(() => SelectItem(item.SalesItemId, rate.Quantity, rate.Rate))">
|
||||
<i class="oi oi-plus"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -19,15 +19,15 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h2 class="modal-title">PRODUKT GENNEMGANG</h2>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@((MarkupString) BodyMessage)
|
||||
<CustomerProductCheckListComponent CompanyId="@CompanyId" Inventory="@Products" />
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @onclick="Hide">Afbryd</button>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" @onclick="() => OnOkClicked.InvokeAsync()">OK</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" onclick="@Hide">Afbryd</button>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" onclick="@(() => OnOkClicked.InvokeAsync())">OK</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">@ProductName</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@if (!string.IsNullOrWhiteSpace(ProductName))
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">@ProductName</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@if (!string.IsNullOrWhiteSpace(ProductName))
|
||||
|
@ -44,7 +44,7 @@
|
|||
<td>@entry.Discount</td>
|
||||
<td>@entry.Price</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" @onclick="() => SelectPrice(entry.Price)">Overfør</button>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" onclick="@(() => SelectPrice(entry.Price))">Overfør</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
|
|
@ -114,7 +114,25 @@ else
|
|||
}
|
||||
</div>
|
||||
|
||||
@if (!Kanvas)
|
||||
@if (Kanvas)
|
||||
{
|
||||
<label for="demo" class="col-sm-2 col-form-label-sm">Demo</label>
|
||||
<div class="col-sm-10">
|
||||
<InputText id="demo" class="form-control" @bind-Value="Activity.Demo"/>
|
||||
<ValidationMessage For="@(() => Activity.Demo)"></ValidationMessage>
|
||||
</div>
|
||||
<label for="orderMessage" class="col-sm-2 col-form-label-sm">Note /Kontor</label>
|
||||
<div class="col-sm-10">
|
||||
<InputTextArea id="orderMessage" class="form-control" @bind-Value="Activity.OrderMessage"/>
|
||||
<ValidationMessage For="@(() => Activity.OrderMessage)"></ValidationMessage>
|
||||
</div>
|
||||
<label for="crmNote" class="col-sm-2 col-form-label-sm">Note /Selv</label>
|
||||
<div class="col-sm-10">
|
||||
<InputTextArea id="crmNote" class="form-control" @bind-Value="Activity.CrmNote"/>
|
||||
<ValidationMessage For="@(() => Activity.CrmNote)"></ValidationMessage>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<label for="demo" class="col-sm-2 col-form-label-sm">Demo</label>
|
||||
<div class="col-sm-4">
|
||||
|
@ -157,20 +175,18 @@ else
|
|||
<InputText id="vatNumber" class="form-control" @bind-Value="Activity.VatNumber"/>
|
||||
<ValidationMessage For="@(() => Activity.VatNumber)"/>
|
||||
</div>
|
||||
<label for="orderMessage" class="col-sm-2 col-form-label-sm">Note /Kontor</label>
|
||||
<div class="col-sm-4">
|
||||
<InputTextArea id="orderMessage" class="form-control" @bind-Value="Activity.OrderMessage"/>
|
||||
<ValidationMessage For="@(() => Activity.OrderMessage)"></ValidationMessage>
|
||||
</div>
|
||||
|
||||
<label for="crmNote" class="col-sm-2 col-form-label-sm">Note /Selv</label>
|
||||
<div class="col-sm-4">
|
||||
<InputTextArea id="crmNote" class="form-control" @bind-Value="Activity.CrmNote"/>
|
||||
<ValidationMessage For="@(() => Activity.CrmNote)"></ValidationMessage>
|
||||
</div>
|
||||
}
|
||||
|
||||
<label for="orderMessage" class="col-sm-2 col-form-label-sm">Note /Kontor</label>
|
||||
<div class="col-sm-4">
|
||||
<InputTextArea id="orderMessage" class="form-control" @bind-Value="Activity.OrderMessage"/>
|
||||
<ValidationMessage For="@(() => Activity.OrderMessage)"></ValidationMessage>
|
||||
</div>
|
||||
|
||||
<label for="crmNote" class="col-sm-2 col-form-label-sm">Note /Selv</label>
|
||||
<div class="col-sm-4">
|
||||
<InputTextArea id="crmNote" class="form-control" @bind-Value="Activity.CrmNote"/>
|
||||
<ValidationMessage For="@(() => Activity.CrmNote)"></ValidationMessage>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@if (!Kanvas)
|
||||
|
@ -180,23 +196,23 @@ else
|
|||
@*
|
||||
***************** Invoice history overlay *****************************
|
||||
*@
|
||||
<button class="btn btn-danger" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowInvoiceOverlay">Faktura</button>
|
||||
<button class="btn btn-danger" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" onclick="@ShowInvoiceOverlay">Faktura</button>
|
||||
</div>
|
||||
<div class="col-sm-3 d-grid mx-auto">
|
||||
@*
|
||||
***************** Visit hisotry overlay *****************************
|
||||
*@
|
||||
<button class="btn btn-warning" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowVisitOverlay">Tidl. besøg</button>
|
||||
<button class="btn btn-warning" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" onclick="@ShowVisitOverlay">Tidl. besøg</button>
|
||||
</div>
|
||||
<div class="col-sm-3 d-grid mx-auto">
|
||||
@*
|
||||
***************** Product Inventory overlay *****************************
|
||||
*@
|
||||
<button class="btn btn-success" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowInventoryOverlay">Produkter</button>
|
||||
<button class="btn btn-success" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" onclick="@ShowInventoryOverlay">Produkter</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="this-draft" style="@(Activity.ActivityStatusEnum is "order" or "quote" ? "display: block" : "display:none")">
|
||||
<div id="this-draft" class="@(Activity.ActivityStatusEnum is "order" or "quote" ? "visible" : "invisible")">
|
||||
@* Draft lines in draft -----------------------------------------------------*@
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
@ -210,7 +226,7 @@ else
|
|||
@*
|
||||
***************** Reset draft *****************************
|
||||
*@
|
||||
<button type="button" class="btn btn-danger btn-sm" @onclick="@DeleteDraft" disabled="@(DraftProvider.Draft.Items.Count == 0)"><i class="bi-trash"></i> Slet kladde</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" onclick="@DeleteDraft" disabled="@(DraftProvider.Draft.Items.Count == 0)"><i class="bi-trash"></i> Slet kladde</button>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="bg-dark opacity-75 text-white">
|
||||
|
@ -243,7 +259,7 @@ else
|
|||
@*
|
||||
***************** Remove item *****************************
|
||||
*@
|
||||
<button type="button" class="btn btn-danger" @onclick="@(() => RemoveItem(cartItem))"><i class="bi-trash2"></i> Slet Linje</button>
|
||||
<button type="button" class="btn btn-danger" onclick="@(() => RemoveItem(cartItem))"><i class="bi-trash2"></i> Slet Linje</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
@ -257,7 +273,7 @@ else
|
|||
@*
|
||||
***************** Price catalog overlay button *****************************
|
||||
*@
|
||||
<button class="btn btn-primary" type="button" @onclick="ShowPriceListOverlay">
|
||||
<button class="btn btn-primary" type="button" onclick="@ShowPriceListOverlay">
|
||||
<i class="bi-plus"></i> Ny linje
|
||||
</button>
|
||||
</td>
|
||||
|
@ -288,31 +304,31 @@ else
|
|||
<tbody>
|
||||
<tr>
|
||||
<td class="align-middle" style="min-width:100px;">
|
||||
<input type="number" class="form-control" @bind-value="@Quantity"/>
|
||||
<input type="number" class="form-control" @bind-value="Quantity"/>
|
||||
</td>
|
||||
<td class="align-middle" style="min-width:200px;">
|
||||
<div class="input-group">
|
||||
<input type="number" class="form-control" @bind-value="@Price"/>
|
||||
<input type="number" class="form-control" @bind-value="Price"/>
|
||||
@*
|
||||
***************** Product Price history overlay button *********************
|
||||
*@
|
||||
<button class="btn btn-warning" type="button" @onclick="ShowPriceHistoryOverlay">
|
||||
<button class="btn btn-warning" type="button" onclick="@ShowPriceHistoryOverlay">
|
||||
<i class="bi-list-ul"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle" style="min-width:100px;">
|
||||
<input type="number" class="form-control" @bind-value="@Discount"/>
|
||||
<input type="number" class="form-control" @bind-value="Discount"/>
|
||||
</td>
|
||||
<td class="align-middle align-content-center justify-content-center">
|
||||
<input type="checkbox" class="form-check" @bind-value="@Sas"/>
|
||||
<input type="checkbox" class="form-check" @bind-value="Sas"/>
|
||||
</td>
|
||||
<td class="align-middle">@SelectedItem.Sku</td>
|
||||
<td class="align-middle">
|
||||
@*
|
||||
***************** Add item 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 d-block text-sm-center" onclick="@(() => AddItem(SelectedItem))">@Quantity stk. @SelectedItem.Name</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -324,7 +340,7 @@ else
|
|||
</div>
|
||||
<div class="accordion" id="crmActivity">
|
||||
@* Delivery address *@
|
||||
<div class="accordion-item" style="@(Activity.ActivityStatusEnum == "order" ? "display: block" : "display:none")">
|
||||
<div class="accordion-item @(Activity.ActivityStatusEnum == "order" ? "visible" : "invisible")">
|
||||
<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
|
||||
|
@ -379,7 +395,7 @@ else
|
|||
***************** Confirm product check overlay button *****************************
|
||||
***************** Continue by submitton order to erp *****************************
|
||||
*@
|
||||
<button type="button" class="btn btn-warning" @onclick="CallConfirmCheckOverlay" disabled="@(PoFormInvalid || Working)">
|
||||
<button type="button" class="btn btn-warning" onclick="@CallConfirmCheckOverlay" disabled="@(PoFormInvalid || Working)">
|
||||
<i class="bi-cloud-arrow-up"></i> @ButtonText
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -142,7 +142,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row mb-1">
|
||||
<button class="btn btn-primary btn-lg" type="button" @onclick="UpdateOfficeNote" disabled="@Disabled">Opdater Note /Kontor</button>
|
||||
<button class="btn btn-primary btn-lg" type="button" onclick="@UpdateOfficeNote" disabled="@Disabled">Opdater Note /Kontor</button>
|
||||
</div>
|
||||
</EditForm>
|
||||
</div>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
@switch (Company.CountryCode)
|
||||
{
|
||||
case "dk":
|
||||
<button type="button" class="btn btn-info" @onclick="CallVatLookupModal"><i class="bi-search"></i> Firma søgning</button>
|
||||
<button type="button" class="btn btn-info" onclick="@CallVatLookupModal"><i class="bi-search"></i> Firma søgning</button>
|
||||
break;
|
||||
case "no":
|
||||
<a class="btn btn-info" href="https://brreg.no/" target="_blank"><i class="bi-search"></i> Firma søgning</a>
|
||||
|
|
|
@ -34,14 +34,14 @@
|
|||
<PageSizeComponent OnChanged="SetPageSize"/>
|
||||
</div>
|
||||
<div class="col-sm-2 mx-auto">
|
||||
<button type button class="btn btn-warning @(ShowFolded ? "active" : "")"
|
||||
data-bs-toggle="button" aria-pressed="@ShowFolded" @onclick="ToggleFolded">
|
||||
<button type="button" class="btn btn-warning @(ShowFolded ? "active" : "")"
|
||||
data-bs-toggle="button" aria-pressed="@ShowFolded" onclick="@ToggleFolded">
|
||||
@ToggleFoldedText
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-sm-1 mx-auto">
|
||||
<button type button class="btn btn-warning @(@ShowHidden ? "active" : "")"
|
||||
data-bs-toggle="button" aria-pressed="@ShowHidden" @onclick="ToggleHidden">
|
||||
<button type="button" class="btn btn-warning @(ShowHidden ? "active" : "")"
|
||||
data-bs-toggle="button" aria-pressed="@ShowHidden" onclick="@ToggleHidden">
|
||||
@ToggleHiddenText
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -142,11 +142,11 @@
|
|||
|
||||
@* Enable edit/save *@
|
||||
<div class="col-sm-2 d-grid mx-auto">
|
||||
<button type="button" class="btn btn-edit" @onclick="ToggleErpEdit"><i class="bi-pencil"></i> STAM data</button>
|
||||
<button type="button" class="btn btn-edit" onclick="@ToggleErpEdit"><i class="bi-pencil"></i> STAM data</button>
|
||||
</div>
|
||||
@* Force enable visit *@
|
||||
<div class="col-sm-3 d-grid mx-auto">
|
||||
<button type="button" class="btn btn-primary d-block" @onclick="ForceActivity">Aktiver besøg</button>
|
||||
<button type="button" class="btn btn-primary d-block" onclick="@ForceActivity">Aktiver besøg</button>
|
||||
</div>
|
||||
@* Save erp data *@
|
||||
<div class="col-sm-3 d-grid mx-auto">
|
||||
|
@ -165,14 +165,14 @@
|
|||
</div>
|
||||
@* Enable edit/save vatnumber *@
|
||||
<div class="col-sm-2 d-grid mx-auto">
|
||||
<button type="button" class="btn btn-edit" @onclick="ToggleVatEdit"><i class="bi-pencil"></i> ORG Nr.</button>
|
||||
<button type="button" class="btn btn-edit" onclick="@ToggleVatEdit"><i class="bi-pencil"></i> ORG Nr.</button>
|
||||
</div>
|
||||
@* vat lookup *@
|
||||
<div class="col-sm-3 d-grid mx-auto">
|
||||
@switch (CountryCode)
|
||||
{
|
||||
case "dk":
|
||||
<button type="button" class="btn btn-info" @onclick="OpenVatLookupModal" disabled="@(VatEditDisabled)"><i class="bi-search"></i> CVR</button>
|
||||
<button type="button" class="btn btn-info" onclick="@OpenVatLookupModal" disabled="@(VatEditDisabled)"><i class="bi-search"></i> CVR</button>
|
||||
break;
|
||||
case "no":
|
||||
<a class="btn btn-info" href="https://brreg.no/" target="_blank"><i class="bi-search"></i> brreg.no</a>
|
||||
|
@ -184,7 +184,7 @@
|
|||
</div>
|
||||
@* save vat number *@
|
||||
<div class="col-sm-3 d-grid mx-auto">
|
||||
<button type="button" class="btn btn-warning d-block" @onclick="UpdateVatNumber" disabled="@(VatEditDisabled)"><i class="bi-cloud-arrow-up"></i> Moms/Org Nr.</button>
|
||||
<button type="button" class="btn btn-warning d-block" onclick="@UpdateVatNumber" disabled="@(VatEditDisabled)"><i class="bi-cloud-arrow-up"></i> Moms/Org Nr.</button>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
@ -239,7 +239,7 @@
|
|||
</div>
|
||||
@* Save CRM data button *@
|
||||
<div class="col-sm-3 d-grid mx-auto">
|
||||
<button type="button" class="btn btn-warning" disabled="@(Company.Name == "ERROR")" @onclick="UpdateCrmData"><i class="bi-cloud-arrow-up"></i> CRM data</button>
|
||||
<button type="button" class="btn btn-warning" disabled="@(Company.Name == "ERROR")" onclick="@UpdateCrmData"><i class="bi-cloud-arrow-up"></i> CRM data</button>
|
||||
</div>
|
||||
</div>
|
||||
@* crm context - contacts *@
|
||||
|
@ -247,7 +247,7 @@
|
|||
<label for="contacts" class="col-sm-1 col-form-label-sm">Kontakt</label>
|
||||
<div id="contacts" class="col-sm-11">
|
||||
<div class="list-group">
|
||||
<div class="list-group-item list-group-item-action bg-dark text-white" @onclick="() => OpenContactPopup(DefaultContact)">
|
||||
<div class="list-group-item list-group-item-action bg-dark text-white" onclick="@(() => OpenContactPopup(DefaultContact))">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">Stilling</div>
|
||||
<div class="col-sm-4">Navn</div>
|
||||
|
@ -261,7 +261,7 @@
|
|||
{
|
||||
@foreach (var contact in Contacts)
|
||||
{
|
||||
<div class="list-group-item list-group-item-action" @onclick="() => OpenContactPopup(contact)">
|
||||
<div class="list-group-item list-group-item-action" onclick="@(() => OpenContactPopup(contact))">
|
||||
<div class="row g-2">
|
||||
<div class="col-sm-4">@contact.JobTitle</div>
|
||||
<div class="col-sm-4">@contact.FirstName @contact.LastName</div>
|
||||
|
@ -307,7 +307,7 @@
|
|||
</div>
|
||||
<div class="row pt-3">
|
||||
<div class="col-sm-3 d-grid">
|
||||
<button type="button" class="btn btn-danger" @onclick="ToggleVisibility">@ToggleButtonText</button>
|
||||
<button type="button" class="btn btn-danger" onclick="@ToggleVisibility">@ToggleButtonText</button>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
@if (AppInfo.Value.Rc)
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
@*
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="showAll"
|
||||
@bind-Value="Filtered" @bind-Value:event="onchange" @onclick="FilterQuotes" disabled="@(!Quotes.Any())"/>
|
||||
@bind-Value="Filtered" @bind-Value:event="onchange" onclick="@FilterQuotes" disabled="@(!Quotes.Any())"/>
|
||||
<label for="showAll" class="form-check-label">Vis alle</label>
|
||||
</div>
|
||||
*@
|
||||
|
|
|
@ -83,18 +83,18 @@
|
|||
</td>
|
||||
<td>
|
||||
<input type="time" id="checkOut" class="form-control"
|
||||
@bind-Value="CheckOut" @bind-Value:event="oninput" @onchange="OnTimeChanged"/>
|
||||
@bind-Value="CheckOut" @bind-Value:event="oninput" onchange="@OnTimeChanged"/>
|
||||
</td>
|
||||
}
|
||||
<td class="text-end">
|
||||
<button type="button" class="btn btn-warning"
|
||||
@onclick="GetKeyFigures" disabled="@(!NoFigures)">
|
||||
onclick="@GetKeyFigures" disabled="@(!NoFigures)">
|
||||
Nøgletal
|
||||
</button>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<button type="button" class="btn btn-primary"
|
||||
@onclick="SubmitReport" disabled="@(NoFigures || Working)">
|
||||
onclick="@SubmitReport" disabled="@(NoFigures || Working)">
|
||||
Gem Rapport
|
||||
</button>
|
||||
</td>
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
<WorkDateComponent OnWorkDateChangedCallback="FetchReport"/>
|
||||
</div>
|
||||
<div class="col-sm-2 d-grid">
|
||||
<button class="btn btn-warning" @onclick="() => Print(PrintTarget.FrontPage)"><i class="bi-printer"></i> Forside</button>
|
||||
<button class="btn btn-warning" onclick="@(() => Print(PrintTarget.FrontPage))"><i class="bi-printer"></i> Forside</button>
|
||||
</div>
|
||||
<div class="col-sm-2 d-grid">
|
||||
<button class="btn btn-success" @onclick="() => Print(PrintTarget.OrderPage)"><i class="bi-printer"></i> Ordrer</button>
|
||||
<button class="btn btn-success" onclick="@(() => Print(PrintTarget.OrderPage))"><i class="bi-printer"></i> Ordrer</button>
|
||||
</div>
|
||||
<div class="col-sm-2 d-grid">
|
||||
<button class="btn btn-primary" type="button" onclick="window.print();"><i class="bi-printer"></i> Rapport</button>
|
||||
|
|
|
@ -25,10 +25,10 @@
|
|||
</div>
|
||||
<div class="col-sm-6 d-grid">
|
||||
<AuthorizeView Roles="Admin,Office">
|
||||
<button class="btn btn-primary" type="button" @onclick="OfficePrint"><i class="bi-printer"></i> Udskriv</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@OfficePrint"><i class="bi-printer"></i> Udskriv</button>
|
||||
</AuthorizeView>
|
||||
<AuthorizeView Roles="Advisor">
|
||||
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Udskriv</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@Print"><i class="bi-printer"></i> Udskriv</button>
|
||||
</AuthorizeView>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<a class="btn btn-info" href="@ReturnUrl"><i class="bi-back"></i> Tilbage</a>
|
||||
</div>
|
||||
<div class="col-sm-6 d-grid">
|
||||
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Udskriv</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@Print"><i class="bi-printer"></i> Udskriv</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col text-md-center m-5 text-primary">
|
||||
<a class="btn btn-primary" @onclick="NavigateToHome">Gå til forsiden</a>
|
||||
<a class="btn btn-primary" onclick="@NavigateToHome">Gå til forsiden</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
<div class="col-sm-2 mx-auto">
|
||||
<button type button class="btn btn-warning @(ShowFolded ? "active" : "")"
|
||||
data-bs-toggle="button" aria-pressed="@ShowFolded" @onclick="ToggleFolded">
|
||||
data-bs-toggle="button" aria-pressed="@ShowFolded" onclick="@ToggleFolded">
|
||||
@ToggleFoldedText
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -26,13 +26,13 @@
|
|||
<WorkDateComponent OnWorkDateChangedCallback="FetchUserReport"/>
|
||||
</div>
|
||||
<div class="col-sm-2 d-grid">
|
||||
<button class="btn btn-warning" @onclick="() => Print(PrintTarget.FrontPage)"><i class="bi-printer"></i> Forside</button>
|
||||
<button class="btn btn-warning" onclick="@(() => Print(PrintTarget.FrontPage))"><i class="bi-printer"></i> Forside</button>
|
||||
</div>
|
||||
<div class="col-sm-2 d-grid">
|
||||
<button class="btn btn-success" @onclick="() => Print(PrintTarget.OrderPage)"><i class="bi-printer"></i> Ordrer</button>
|
||||
<button class="btn btn-success" onclick="@(() => Print(PrintTarget.OrderPage))"><i class="bi-printer"></i> Ordrer</button>
|
||||
</div>
|
||||
<div class="col-sm-2 d-grid">
|
||||
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Rapport</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@(() => PrintAll)"><i class="bi-printer"></i> Rapport</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -91,13 +91,14 @@ public partial class OfficeAdvisorReportViewPage : IDisposable
|
|||
case PrintTarget.None:
|
||||
break;
|
||||
case PrintTarget.All:
|
||||
InvokeAsync(PrintAll);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(target), target, null);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task Print()
|
||||
private async Task PrintAll()
|
||||
{
|
||||
var current = 0;
|
||||
var orders = Report.ReportItems
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
</div>
|
||||
<div class="col-sm-2 mx-auto">
|
||||
<button type button class="btn btn-warning @(ShowFolded ? "active" : "")"
|
||||
data-bs-toggle="button" aria-pressed="@ShowFolded" @onclick="ToggleFolded">
|
||||
data-bs-toggle="button" aria-pressed="@ShowFolded" onclick="@ToggleFolded">
|
||||
@ToggleFoldedText
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -98,21 +98,21 @@
|
|||
@*
|
||||
***************** Invoice history overlay *****************************
|
||||
*@
|
||||
<button class="btn btn-danger" @onclick="ShowInvoiceOverlay">Faktura</button>
|
||||
<button class="btn btn-danger" onclick="@ShowInvoiceOverlay">Faktura</button>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4 d-grid mx-auto">
|
||||
@*
|
||||
***************** Visit history overlay *****************************
|
||||
*@
|
||||
<button class="btn btn-warning" @onclick="ShowVisitOverlay">Tidl. besøg</button>
|
||||
<button class="btn btn-warning" onclick="@ShowVisitOverlay">Tidl. besøg</button>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4 d-grid mx-auto">
|
||||
@*
|
||||
***************** Product Inventory overlay *****************************
|
||||
*@
|
||||
<button class="btn btn-success" @onclick="ShowInventoryOverlay">Produkter</button>
|
||||
<button class="btn btn-success" onclick="@ShowInventoryOverlay">Produkter</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -130,7 +130,7 @@
|
|||
@*
|
||||
***************** Reset draft *****************************
|
||||
*@
|
||||
<button type="button" class="btn btn-danger btn-sm" @onclick="@DeleteDraft" disabled="@(DraftProvider.Draft.Items.Count == 0)"><i class="bi-trash"></i> Slet kladde</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" onclick="@DeleteDraft" disabled="@(DraftProvider.Draft.Items.Count == 0)"><i class="bi-trash"></i> Slet kladde</button>
|
||||
</th>
|
||||
</tr>
|
||||
<tr class="bg-dark opacity-75 text-white">
|
||||
|
@ -159,7 +159,7 @@
|
|||
@*
|
||||
***************** Remove draft line *****************************
|
||||
*@
|
||||
<button type="button" class="btn btn-danger" @onclick="@(() => RemoveItem(cartItem))"><i class="bi-trash2"></i> Slet Linje</button>
|
||||
<button type="button" class="btn btn-danger" onclick="@(() => RemoveItem(cartItem))"><i class="bi-trash2"></i> Slet Linje</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
@ -172,7 +172,7 @@
|
|||
@*
|
||||
***************** Product Catalog overlay *****************************
|
||||
*@
|
||||
<button class="btn btn-primary" type="button" @onclick="ShowCatalogOverlay">
|
||||
<button class="btn btn-primary" type="button" onclick="@ShowCatalogOverlay">
|
||||
<i class="bi-plus"></i> Ny linje
|
||||
</button>
|
||||
</td>
|
||||
|
@ -202,27 +202,27 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td class="align-middle">
|
||||
<input type="number" class="form-control" @bind-value="@Quantity"/>
|
||||
<input type="number" class="form-control" @bind-value="Quantity"/>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<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>
|
||||
</button>
|
||||
*@
|
||||
</div>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<input type="number" class="form-control" @bind-value="@Discount"/>
|
||||
<input type="number" class="form-control" @bind-value="Discount"/>
|
||||
</td>
|
||||
<td class="align-middle">@SelectedItem.Sku</td>
|
||||
<td class="align-middle">
|
||||
@*
|
||||
***************** Add line to draft *****************************
|
||||
*@
|
||||
<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 d-block text-sm-center" onclick="@(() => AddItem(SelectedItem))">@Quantity stk. @SelectedItem.Name</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -238,7 +238,7 @@
|
|||
@*
|
||||
***************** Submit order to erp system *****************************
|
||||
*@
|
||||
<button type="button" class="btn btn-warning" @onclick="CreateActivity" disabled="@(PoFormInvalid || Working)"><i class="bi-plus"></i> Opret ordre</button>
|
||||
<button type="button" class="btn btn-warning" onclick="@CreateActivity" disabled="@(PoFormInvalid || Working)"><i class="bi-plus"></i> Opret ordre</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -130,6 +130,7 @@ public partial class OfficeOrderCreatePage : IDisposable
|
|||
// set activity salesRep and countryCode
|
||||
Activity.SalesRep = SalesRep.SalesRep;
|
||||
Activity.CountryCode = SalesRep.CountryCode;
|
||||
Activity.SalesRepId = Company.SalesRepId;
|
||||
|
||||
// add customer info into activity properties
|
||||
Activity.Account = Company.Account;
|
||||
|
@ -149,25 +150,25 @@ public partial class OfficeOrderCreatePage : IDisposable
|
|||
Activity.DlvCity = Company.City;
|
||||
Activity.BcId = Company.BcId;
|
||||
Activity.CompanyId = Company.CompanyId;
|
||||
Activity.SalesRepId = Company.SalesRepId;
|
||||
|
||||
// setting up activity properties
|
||||
Activity.ActivityStatusEnum = "noSale";
|
||||
Activity.ActivityVisitEnum = "recall";
|
||||
Activity.ActivityVisitEnum = "none";
|
||||
Activity.ActivityTypeEnum = "phone";
|
||||
Activity.ActivityStatusEnum = "order";
|
||||
Activity.OurRef = $"T:{UserInfo.FirstName}";
|
||||
Activity.OurRef = $"INNOTEC:{UserInfo.FirstName}";
|
||||
|
||||
// Initialize date variable
|
||||
SelectedDate = DateTime.Now;
|
||||
Working = false;
|
||||
}
|
||||
|
||||
|
||||
private async Task DeleteDraft()
|
||||
{
|
||||
await DraftProvider.DeleteDraftAsync();
|
||||
}
|
||||
|
||||
|
||||
private async Task RemoveItem(DraftItem item)
|
||||
{
|
||||
// remove item
|
||||
|
@ -176,6 +177,7 @@ public partial class OfficeOrderCreatePage : IDisposable
|
|||
await DraftProvider.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
private async Task AddItem(SalesItemView salesItem)
|
||||
{
|
||||
ShowItem = false;
|
||||
|
@ -199,6 +201,7 @@ public partial class OfficeOrderCreatePage : IDisposable
|
|||
await DraftProvider.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
private async Task PriceListCallback(SelectedSku sku)
|
||||
{
|
||||
// get selected item
|
||||
|
@ -211,24 +214,31 @@ public partial class OfficeOrderCreatePage : IDisposable
|
|||
StateHasChanged();
|
||||
}
|
||||
|
||||
|
||||
private void ShowCatalogOverlay()
|
||||
{
|
||||
CatalogOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
private void ShowInvoiceOverlay()
|
||||
{
|
||||
InvoiceListOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
private void ShowVisitOverlay()
|
||||
{
|
||||
ActivityListOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
private void ShowInventoryOverlay()
|
||||
{
|
||||
InventoryListOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
private async Task CreateActivity()
|
||||
{
|
||||
// avoid duplication
|
||||
|
@ -327,7 +337,6 @@ public partial class OfficeOrderCreatePage : IDisposable
|
|||
Working = false;
|
||||
// show error message
|
||||
Toaster.ShowError(result.Message);
|
||||
|
||||
}
|
||||
|
||||
private void InventoryCallback(DraftItem item)
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<AuthorizeView Roles="Admin,Office,Warehouse">
|
||||
<Authorized>
|
||||
<div class="col-sm-5">
|
||||
<button type="button" class="btn btn-warning d-block" @onclick="SetExpressState" disabled="@IsNotified">Kvitter for modtagelse</button>
|
||||
<button type="button" class="btn btn-warning d-block" onclick="@SetExpressState" disabled="@IsNotified">Kvitter for modtagelse</button>
|
||||
</div>
|
||||
</Authorized>
|
||||
</AuthorizeView>
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
<div class="card-footer">
|
||||
<div class="row">
|
||||
<div class="col text-start">
|
||||
<button type="button" class="btn btn-warning" @onclick="RemoveDocument"><i class="bi-trash"></i> Slet</button>
|
||||
<button type="button" class="btn btn-warning" @nclick="@RemoveDocument"><i class="bi-trash"></i> Slet</button>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button type="submit" class="btn btn-primary"><i class="bi-cloud-upload"></i> Gem</button>
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 text-end">
|
||||
<button class="btn btn-primary" type="button" @onclick="SendMessage">Send besked</button>
|
||||
<button class="btn btn-primary" type="button" onclick="@SendMessage">Send besked</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -149,10 +149,10 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button type="button" class="btn btn-danger" disabled="@ReadOnly" @onclick="SendDeleteRequest">SLET</button>
|
||||
<button type="button" class="btn btn-danger" disabled="@ReadOnly" onclick="@SendDeleteRequest">SLET</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button type="button" class="btn btn-warning" @onclick="() => ReadOnly = !ReadOnly">Rediger</button>
|
||||
<button type="button" class="btn btn-warning" onclick="@(() => ReadOnly = !ReadOnly)">Rediger</button>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button type="submit" class="btn btn-primary" disabled="@ReadOnly">Gem</button>
|
||||
|
@ -185,7 +185,7 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col align-content-end">
|
||||
<button class="btn btn-danger" @onclick="SetPassword" disabled="@PwInvalid">NULSTIL</button>
|
||||
<button class="btn btn-danger" onclick="@SetPassword" disabled="@PwInvalid">NULSTIL</button>
|
||||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
|
|
|
@ -108,15 +108,15 @@
|
|||
<div class="col-md-4">
|
||||
@if (Order.ProcessStatusEnum.ToLower() is "none" or "printed")
|
||||
{
|
||||
<button class="btn btn-lg btn-warning text-nowrap" type="button" @onclick="SetProcessStatusPicked" disabled="@Working">Sæt status plukket</button>
|
||||
<button class="btn btn-lg btn-warning text-nowrap" type="button" onclick="@SetProcessStatusPicked" disabled="@Working">Sæt status plukket</button>
|
||||
}
|
||||
@if (Order.ProcessStatusEnum.ToLower() == "picked")
|
||||
{
|
||||
<button class="btn btn-lg btn-danger text-nowrap" type="button" @onclick="SetProcessStatusPacked" disabled="@Working">Sæt status pakket</button>
|
||||
<button class="btn btn-lg btn-danger text-nowrap" type="button" onclick="@SetProcessStatusPacked" disabled="@Working">Sæt status pakket</button>
|
||||
}
|
||||
@if (Order.ProcessStatusEnum.ToLower() == "packed")
|
||||
{
|
||||
<button class="btn btn-lg btn-primary text-nowrap" type="button" @onclick="SetProcessStatusShipped" disabled="@Working">Sæt status afsendt</button>
|
||||
<button class="btn btn-lg btn-primary text-nowrap" type="button" onclick="@SetProcessStatusShipped" disabled="@Working">Sæt status afsendt</button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -30,6 +30,7 @@ public class AuthStateProvider : AuthenticationStateProvider
|
|||
private readonly AuthenticationState _anonymous;
|
||||
private readonly IUserInfoService _infoService;
|
||||
|
||||
|
||||
public AuthStateProvider(HttpClient client, IUserInfoService infoService)
|
||||
{
|
||||
_client = client;
|
||||
|
@ -37,15 +38,20 @@ public class AuthStateProvider : AuthenticationStateProvider
|
|||
_anonymous = new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity()));
|
||||
}
|
||||
|
||||
|
||||
public override async Task<AuthenticationState> GetAuthenticationStateAsync()
|
||||
{
|
||||
var token = await _infoService.GetAccessToken();
|
||||
if (string.IsNullOrEmpty(token))
|
||||
{
|
||||
return _anonymous;
|
||||
}
|
||||
|
||||
var userInfo = await _infoService.GetUserInfo();
|
||||
if (userInfo == null)
|
||||
if (string.IsNullOrWhiteSpace(userInfo.UserId))
|
||||
{
|
||||
return _anonymous;
|
||||
}
|
||||
|
||||
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
|
||||
var exp = await _infoService.GetExpiration();
|
||||
|
@ -59,18 +65,22 @@ public class AuthStateProvider : AuthenticationStateProvider
|
|||
};
|
||||
claims.AddRange(
|
||||
from role in userInfo.AssignedRoles
|
||||
where role.Assigned select new Claim(ClaimTypes.Role, role.Name));
|
||||
where role.Assigned select new Claim(ClaimTypes.Role, role.Name)
|
||||
);
|
||||
|
||||
// return the authState for the user
|
||||
return new AuthenticationState(
|
||||
new ClaimsPrincipal(
|
||||
new ClaimsIdentity(claims, "token")));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public async void NotifyUserAuthenticationAsync(string token)
|
||||
{
|
||||
if (string.IsNullOrEmpty(token))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
|
||||
|
||||
|
@ -96,6 +106,8 @@ public class AuthStateProvider : AuthenticationStateProvider
|
|||
|
||||
NotifyAuthenticationStateChanged(authState);
|
||||
}
|
||||
|
||||
|
||||
public void NotifyUserLogout()
|
||||
{
|
||||
var authState = Task.FromResult(_anonymous);
|
||||
|
|
|
@ -19,14 +19,14 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">Bekræft Venligst</h3>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="fw-bold">@BodyMessage</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @onclick="Hide">Afbryd</button>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" @onclick="() => OnOkClicked.InvokeAsync()">OK</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" onclick="@Hide">Afbryd</button>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" onclick="@(() => OnOkClicked.InvokeAsync())">OK</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -19,14 +19,14 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h2 class="modal-title">Bekræft Venligst</h2>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@((MarkupString) BodyMessage)
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @onclick="CancelSelected">Afbryd</button>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" @onclick="OkSelected">OK</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" onclick="@CancelSelected">Afbryd</button>
|
||||
<button type="button" class="btn btn-primary" data-bs-dismiss="modal" onclick="@OkSelected">OK</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">@CompanyName</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<EditForm Model="Contact" OnValidSubmit="SubmitContact">
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header bg-info">
|
||||
<h5 class="modal-title">Info</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-info">
|
||||
|
@ -27,8 +27,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @onclick="Hide">Luk</button>
|
||||
@* <button type="button" class="btn btn-primary" data-bs-dismiss="modal" @onclick="() => OnOkClicked.InvokeAsync()">OK</button> *@
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" onclick="@Hide">Luk</button>
|
||||
@* <button type="button" class="btn btn-primary" data-bs-dismiss="modal" onclick="@(() => OnOkClicked.InvokeAsync())">OK</button> *@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -22,13 +22,13 @@
|
|||
<div class="top-row ps-3 navbar navbar-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/"><TopbarDisplayUser /></a>
|
||||
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
|
||||
<button title="Navigation menu" class="navbar-toggler" onclick="@ToggleNavMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
|
||||
<div class="@NavMenuCssClass" onclick="@ToggleNavMenu">
|
||||
<nav class="flex-column">
|
||||
<AuthorizeView>
|
||||
<NotAuthorized>
|
||||
|
|
|
@ -22,13 +22,13 @@
|
|||
<div class="top-row ps-3 navbar navbar-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/"><TopbarDisplayUser /></a>
|
||||
<button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
|
||||
<button title="Navigation menu" class="navbar-toggler" onclick="@ToggleNavMenu">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
|
||||
<div class="@NavMenuCssClass" onclick="@ToggleNavMenu">
|
||||
<nav class="flex-column">
|
||||
<AuthorizeView>
|
||||
<NotAuthorized>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">CVR opslag</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
<button type="button" class="btn-close" onclick="@Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<VatNumberInputComponent VatNumber="@ThisVatNumber" OnValidSubmit="GetInfoFromVat"/>
|
||||
|
@ -47,10 +47,10 @@
|
|||
<td class="align-middle">@info.ZipCode @info.City</td>
|
||||
<td class="align-middle">@info.States[^1].State</td>
|
||||
<td class="align-middle">
|
||||
<button type="button" class="btn btn-primary" @onclick="@(() => SelectCompany(info.VatNumber, true))">Alle data</button>
|
||||
<button type="button" class="btn btn-primary" onclick="@(() => SelectCompany(info.VatNumber, true))">Alle data</button>
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
<button type="button" class="btn btn-primary" @onclick="@(() => SelectCompany(info.VatNumber, false))">Moms Nr</button>
|
||||
<button type="button" class="btn btn-primary" onclick="@(() => SelectCompany(info.VatNumber, false))">Moms Nr</button>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue