order of appearance list page top
This commit is contained in:
parent
b193209bc3
commit
eaf380bec3
21 changed files with 114 additions and 158 deletions
|
@ -2,7 +2,7 @@ namespace Wonky.Client;
|
||||||
|
|
||||||
public class AppId
|
public class AppId
|
||||||
{
|
{
|
||||||
public string Version { get; set; } = "0.2.7";
|
public string Version { get; set; } = "0.2.9";
|
||||||
public string Name { get; set; } = "Wonky Online";
|
public string Name { get; set; } = "Wonky Online";
|
||||||
|
|
||||||
public bool IsBeta { get; set; } = false;
|
public bool IsBeta { get; set; } = false;
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||||
//
|
//
|
||||||
*@
|
*@
|
||||||
|
|
||||||
<select class="form-select" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
<select class="form-select" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectionChanged">
|
||||||
<option value="-1">SØGNING</option>
|
<option value="-1">SØGNING</option>
|
||||||
<option value="name">Firmanavn</option>
|
<option value="name">Firmanavn</option>
|
||||||
|
@ -21,4 +22,4 @@
|
||||||
<option value="zipCode">Postnummer</option>
|
<option value="zipCode">Postnummer</option>
|
||||||
<option value="account">Konto</option>
|
<option value="account">Konto</option>
|
||||||
<option value="phone">Telefon</option>
|
<option value="phone">Telefon</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -39,7 +39,9 @@ public partial class CompanySearchDropdown : IDisposable
|
||||||
private async Task OnSelectionChanged(ChangeEventArgs e)
|
private async Task OnSelectionChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
var val = e.Value.ToString();
|
var val = e.Value.ToString();
|
||||||
if (val == "-1") return;
|
if (val == "-1")
|
||||||
|
{
|
||||||
|
val = "name"; };
|
||||||
await OnChanged.InvokeAsync(val);
|
await OnChanged.InvokeAsync(val);
|
||||||
await UserPreferenceService.SetCompanySearch(val);
|
await UserPreferenceService.SetCompanySearch(val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace Wonky.Client.Components
|
||||||
private async Task OnSelectionChanged(ChangeEventArgs e)
|
private async Task OnSelectionChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
var val = e.Value.ToString();
|
var val = e.Value.ToString();
|
||||||
if (val == "-1") return;
|
if (val == "-1") {val = "name";};
|
||||||
await OnChanged.InvokeAsync(val);
|
await OnChanged.InvokeAsync(val);
|
||||||
await UserPreferenceService.SetCompanySort(val);
|
await UserPreferenceService.SetCompanySort(val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,20 +18,22 @@
|
||||||
@using Wonky.Client.Components;
|
@using Wonky.Client.Components;
|
||||||
@if (Companies.Any())
|
@if (Companies.Any())
|
||||||
{
|
{
|
||||||
<CompanyListHeader />
|
<table class="table">
|
||||||
@foreach (var company in Companies)
|
<tbody>
|
||||||
{
|
@foreach (var company in Companies)
|
||||||
<div class="row p-2 mb-1 border-bottom">
|
{
|
||||||
<div class="state rounded-circle @(VisitState(company.LastVisit))"></div>
|
<tr>
|
||||||
<div class="col-sm-4">@company.Name</div>
|
<td><DisplayStateComponent StateClass="@(VisitState(company.LastVisit))"></DisplayStateComponent></td>
|
||||||
<div class="col-sm-2">@company.Account</div>
|
<td>@company.Name</td>
|
||||||
<div class="col-sm-4">@company.City</div>
|
<td>@company.Account</td>
|
||||||
<div class="col-sm-1"><a class="btn btn-sm btn-primary mb-1" href="/company/account/@company.Account">Vis</a></div>
|
<td>@company.City</td>
|
||||||
</div>
|
<td><a class="btn btn-primary mb-1" href="/company/account/@company.Account">Vis</a></td>
|
||||||
}
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<AppSpinner/>
|
<AppSpinner/>
|
||||||
|
|
||||||
}
|
}
|
|
@ -15,11 +15,7 @@
|
||||||
//
|
//
|
||||||
*@
|
*@
|
||||||
|
|
||||||
@if (string.IsNullOrEmpty(VatNumber))
|
<img class="img-fluid float-start state rounded-circle @StateClass" src="state.png" alt="state"/>
|
||||||
{
|
@code{
|
||||||
<span class="state the-bad rounded-circle mx-3"></span>
|
[Parameter] public string StateClass { get; set; } = "the-ugly";
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<span class="state rounded-circle mx-3 @(CurrentRegState == "NORMAL" ? "the-good" : "the-ugly" )"></span>
|
|
||||||
}
|
}
|
|
@ -31,7 +31,7 @@ public partial class ItemGroupDropdown
|
||||||
private async Task OnSelectionChanged(ChangeEventArgs e)
|
private async Task OnSelectionChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
var val = e.Value.ToString();
|
var val = e.Value.ToString();
|
||||||
if (val == "-1") return;
|
if (val == "-1") {val = "0";};
|
||||||
await OnChanged.InvokeAsync(val);
|
await OnChanged.InvokeAsync(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -36,7 +36,7 @@ public partial class ItemSearchDropdown : IDisposable
|
||||||
private async Task OnSelectChanged(ChangeEventArgs e)
|
private async Task OnSelectChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
var val = e.Value.ToString();
|
var val = e.Value.ToString();
|
||||||
if (val == "-1") return;
|
if (val == "-1") {val = "name";};
|
||||||
await OnChanged.InvokeAsync(val);
|
await OnChanged.InvokeAsync(val);
|
||||||
await UserPreferenceService.SetItemSearch(val);
|
await UserPreferenceService.SetItemSearch(val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public partial class ItemSortDropdown : IDisposable
|
||||||
private async Task OnSelectChanged(ChangeEventArgs e)
|
private async Task OnSelectChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
var val = e.Value.ToString();
|
var val = e.Value.ToString();
|
||||||
if (val == "-1") return;
|
if (val == "-1") {val = "name";};
|
||||||
await OnChanged.InvokeAsync(val);
|
await OnChanged.InvokeAsync(val);
|
||||||
await UserPreferenceService.SetItemSort(val);
|
await UserPreferenceService.SetItemSort(val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*@
|
*@
|
||||||
|
|
||||||
<select class="form-select" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
<select class="form-select" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||||
<option value="-1" selected>ANTAL SVAR</option>
|
<option value="-1" selected>RESULTATER</option>
|
||||||
<option value="5">5</option>
|
<option value="5">5</option>
|
||||||
<option value="10">10</option>
|
<option value="10">10</option>
|
||||||
<option value="15">15</option>
|
<option value="15">15</option>
|
||||||
|
|
|
@ -38,6 +38,7 @@ namespace Wonky.Client.Components
|
||||||
private async Task OnSelectChanged(ChangeEventArgs e)
|
private async Task OnSelectChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
var val = e.Value.ToString();
|
var val = e.Value.ToString();
|
||||||
|
if (val == "-1") {val = "10";};
|
||||||
await OnChanged.InvokeAsync(val);
|
await OnChanged.InvokeAsync(val);
|
||||||
await UserPreferenceService.SetPageSize(val);
|
await UserPreferenceService.SetPageSize(val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
//
|
//
|
||||||
*@
|
*@
|
||||||
|
|
||||||
<nav arial-label="Pager">
|
<div arial-label="Pager">
|
||||||
<ul class="pagination justify-content-center">
|
<ul class="pagination justify-content-center">
|
||||||
@foreach (var link in _links)
|
@foreach (var link in _links)
|
||||||
{
|
{
|
||||||
|
@ -26,4 +26,4 @@
|
||||||
</li>
|
</li>
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</div>
|
|
@ -1,44 +0,0 @@
|
||||||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
|
||||||
// This program is free software: you can redistribute it and/or modify
|
|
||||||
// it under the terms of the Affero GNU General Public License as
|
|
||||||
// published by the Free Software Foundation, either version 3 of the
|
|
||||||
// License, or (at your option) any later version.
|
|
||||||
//
|
|
||||||
// This program is distributed in the hope that it will be useful,
|
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
// Affero GNU General Public License for more details.
|
|
||||||
//
|
|
||||||
// You should have received a copy of the Affero GNU General Public License
|
|
||||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Components;
|
|
||||||
using Wonky.Client.Services;
|
|
||||||
using Wonky.Entity.Models;
|
|
||||||
using Wonky.Entity.Requests;
|
|
||||||
|
|
||||||
namespace Wonky.Client.Components;
|
|
||||||
|
|
||||||
public partial class RegStateVatNumber
|
|
||||||
{
|
|
||||||
[Inject] public VirkRegistryService VirkRegistryService { get; set; }
|
|
||||||
[Parameter] public string VatNumber { get; set; } = "";
|
|
||||||
private VirkRegInfo VirkRegInfo { get; set; } = new();
|
|
||||||
private readonly VirkParams _VirkParams = new();
|
|
||||||
private string CurrentRegState = "UKENDT";
|
|
||||||
|
|
||||||
protected override async Task OnParametersSetAsync()
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrEmpty(VatNumber))
|
|
||||||
{
|
|
||||||
_VirkParams.VatNumber = VatNumber;
|
|
||||||
var result = await VirkRegistryService.QueryVirkRegistry(_VirkParams);
|
|
||||||
VirkRegInfo = result.Any() ? result[0] : new VirkRegInfo();
|
|
||||||
if (VirkRegInfo.States.Any())
|
|
||||||
CurrentRegState = VirkRegInfo.States[^1].State;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -21,36 +21,29 @@
|
||||||
|
|
||||||
@attribute [Authorize(Roles = "Adviser")]
|
@attribute [Authorize(Roles = "Adviser")]
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="container">
|
||||||
<div class="col">
|
<div class="row mb-3">
|
||||||
<div>
|
<div class="col">
|
||||||
<CompanySortDropdown OnChanged="SetSortCol"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div>
|
|
||||||
<CompanySearchDropdown OnChanged="SetSearchCol"/>
|
<CompanySearchDropdown OnChanged="SetSearchCol"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col">
|
||||||
<div class="col">
|
|
||||||
<div>
|
|
||||||
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col">
|
||||||
<div class="col">
|
<CompanySortDropdown OnChanged="SetSortCol"/>
|
||||||
<a class="btn btn-success mb-1" href="/company/create">Nyt firma</a>
|
</div>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<PageSizeDropdown OnChanged="SetPageSize"></PageSizeDropdown>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<a class="btn btn-success mb-1" href="/company/create">Nyt firma</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row mb-3">
|
||||||
<div class="col-md-8">
|
<div class="col">
|
||||||
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
|
||||||
<PageSizeDropdown OnChanged="SetPageSize"></PageSizeDropdown>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
<CompanyTable Companies="Companies" OnDelete="DeleteCompany"></CompanyTable>
|
||||||
<CompanyTable Companies="Companies" OnDelete="DeleteCompany"></CompanyTable>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
|
@ -25,7 +25,11 @@
|
||||||
{
|
{
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<RegStateVatNumber VatNumber="@_companyDto.VatNumber"></RegStateVatNumber>
|
<div>CVR status <DisplayVatStateComponent StateClass="@RegState"></DisplayVatStateComponent></div>
|
||||||
|
<div>Konto @_companyDto.Account</div>
|
||||||
|
<div>CompanyId @_companyDto.CompanyId</div>
|
||||||
|
<div>EDIT Næste besøg @NextVisit</div> <div>EDIT Sidst besøgt @LastVisit</div>
|
||||||
|
<div>DB Næste besøg @_companyDto.NextVisit</div> <div>DB Sidst besøgt @_companyDto.LastVisit</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<EditForm EditContext="_editContext" OnValidSubmit="Update">
|
<EditForm EditContext="_editContext" OnValidSubmit="Update">
|
||||||
|
@ -34,7 +38,6 @@
|
||||||
<label for="name" class="col-md-2 col-form-label">Firmanavn</label>
|
<label for="name" class="col-md-2 col-form-label">Firmanavn</label>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<InputText id="name" class="form-control" @bind-Value="_companyDto.Name"/>
|
<InputText id="name" class="form-control" @bind-Value="_companyDto.Name"/>
|
||||||
<ValidationMessage For="@(() => _companyDto.Name)"/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row mb-2">
|
<div class="form-group row mb-2">
|
||||||
|
@ -53,21 +56,18 @@
|
||||||
<label for="zipCode" class="col-md-2 col-form-label">Postnr</label>
|
<label for="zipCode" class="col-md-2 col-form-label">Postnr</label>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<InputText id="zipCode" class="form-control" @bind-Value="_companyDto.ZipCode"/>
|
<InputText id="zipCode" class="form-control" @bind-Value="_companyDto.ZipCode"/>
|
||||||
<ValidationMessage For="@(() => _companyDto.ZipCode)"/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row mb-2">
|
<div class="form-group row mb-2">
|
||||||
<label for="city" class="col-md-2 col-form-label">Bynavn</label>
|
<label for="city" class="col-md-2 col-form-label">Bynavn</label>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<InputText id="city" class="form-control" @bind-Value="_companyDto.City"/>
|
<InputText id="city" class="form-control" @bind-Value="_companyDto.City"/>
|
||||||
<ValidationMessage For="@(() => _companyDto.City)"></ValidationMessage>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row mb-2">
|
<div class="form-group row mb-2">
|
||||||
<label for="vatNumber" class="col-md-2 col-form-label">CVR/ORG</label>
|
<label for="vatNumber" class="col-md-2 col-form-label">CVR/ORG</label>
|
||||||
<div class="col-md-10">
|
<div class="col-md-10">
|
||||||
<InputText id="vatNumber" class="form-control" @bind-Value="_companyDto.VatNumber"/>
|
<InputText id="vatNumber" class="form-control" @bind-Value="_companyDto.VatNumber"/>
|
||||||
<ValidationMessage For="@(() => _companyDto.VatNumber)"/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row mb-2">
|
<div class="form-group row mb-2">
|
||||||
|
@ -103,7 +103,7 @@
|
||||||
<div class="form-group row mb-2">
|
<div class="form-group row mb-2">
|
||||||
<label for="nextVisit" class="col-form-label col-md-2">Næste besøg</label>
|
<label for="nextVisit" class="col-form-label col-md-2">Næste besøg</label>
|
||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<InputDate id="nextVisit" class="form-control" @bind-Value="@(NextVisit)"/>
|
<InputDate id="nextVisit" class="form-control" @bind-Value="@(NextVisit)"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row mb-2">
|
<div class="form-group row mb-2">
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row mb-2">
|
<div class="row mb-2">
|
||||||
<div class="col-md-12 text-right">
|
<div class="col-md-12 text-right">
|
||||||
<button type="submit" class="btn btn-success" disabled="@_formInvalid">GEM</button>
|
<button type="submit" class="btn btn-success" >GEM</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</EditForm>
|
</EditForm>
|
||||||
|
|
|
@ -37,21 +37,22 @@ public partial class CompanyUpdate : IDisposable
|
||||||
[Parameter] public string Account { get; set; } = null!;
|
[Parameter] public string Account { get; set; } = null!;
|
||||||
private CompanyDto _companyDto;
|
private CompanyDto _companyDto;
|
||||||
private EditContext _editContext;
|
private EditContext _editContext;
|
||||||
private bool _formInvalid = true;
|
|
||||||
private List<VirkRegInfo> VInfos { get; set; } = new();
|
private List<VirkRegInfo> VInfos { get; set; } = new();
|
||||||
private VirkRegInfo _virkRegInfo { get; set; } = new();
|
private VirkRegInfo _virkRegInfo { get; set; } = new();
|
||||||
private DateTime LastVisit { get; set; }
|
private DateTime LastVisit { get; set; }
|
||||||
private DateTime NextVisit { get; set; }
|
private DateTime NextVisit { get; set; }
|
||||||
|
private string RegState { get; set; } = "the-ugly";
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
_companyDto = await CompanyRepo.GetCompanyByAccount(Account);
|
_companyDto = await CompanyRepo.GetCompanyByAccount(Account);
|
||||||
LastVisit = DateTime.Parse(_companyDto.LastVisit);
|
LastVisit = DateTime.Parse(_companyDto.LastVisit);
|
||||||
NextVisit = DateTime.Parse(_companyDto.NextVisit);
|
NextVisit = DateTime.Parse(_companyDto.NextVisit);
|
||||||
_editContext = new EditContext(_companyDto);
|
_editContext = new EditContext(_companyDto);
|
||||||
_editContext.OnFieldChanged += HandleFieldChanged!;
|
|
||||||
Interceptor.RegisterEvent();
|
Interceptor.RegisterEvent();
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
|
|
||||||
|
await GetInfoFromVat(_companyDto.VatNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task Update()
|
private async Task Update()
|
||||||
|
@ -60,9 +61,39 @@ public partial class CompanyUpdate : IDisposable
|
||||||
_companyDto.LastVisit = $"{LastVisit:yyyy-MM-dd}";
|
_companyDto.LastVisit = $"{LastVisit:yyyy-MM-dd}";
|
||||||
_companyDto.NextVisit = $"{NextVisit:yyyy-MM-dd}";
|
_companyDto.NextVisit = $"{NextVisit:yyyy-MM-dd}";
|
||||||
|
|
||||||
await CompanyRepo.UpdateCompany(_companyDto);
|
var lv = DateTime.TryParse(_companyDto.LastVisit, out var lvValidated);
|
||||||
ToastService.ShowSuccess($"Godt så. Firma '{_companyDto!.Name}' er opdateret.");
|
var nv = DateTime.TryParse(_companyDto.NextVisit, out var nvValidated);
|
||||||
Navigation.NavigateTo($"/company/{_companyDto.CompanyId}");
|
if (lv && nv)
|
||||||
|
{
|
||||||
|
await CompanyRepo.UpdateCompany(_companyDto);
|
||||||
|
ToastService.ShowSuccess($"Godt så. Firma '{_companyDto!.Name}' er opdateret.");
|
||||||
|
Navigation.NavigateTo($"/company/account{_companyDto.Account}");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private async Task GetInfoFromVat(string vatNumber)
|
||||||
|
{
|
||||||
|
var result = await VirkRegistryService
|
||||||
|
.QueryVirkRegistry(
|
||||||
|
new VirkParams
|
||||||
|
{
|
||||||
|
VatNumber = vatNumber
|
||||||
|
});
|
||||||
|
if (string.IsNullOrWhiteSpace(result[0].VatNumber))
|
||||||
|
{
|
||||||
|
ToastService.ShowError($"CVR '{vatNumber}' findes ikke.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ToastService.ShowSuccess($"Data for '{vatNumber}' er hentet.");
|
||||||
|
_virkRegInfo = result[0];
|
||||||
|
RegState = _virkRegInfo.States[^1].State == "NORMAL" ? "the-good" : "the-ugly";
|
||||||
|
_companyDto.Name = _virkRegInfo.Name;
|
||||||
|
_companyDto.Address1 = _virkRegInfo.CoName;
|
||||||
|
_companyDto.Address2 = _virkRegInfo.Address;
|
||||||
|
_companyDto.ZipCode = _virkRegInfo.ZipCode;
|
||||||
|
_companyDto.City = _virkRegInfo.City;
|
||||||
|
_companyDto.VatNumber = _virkRegInfo.VatNumber;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task GetInfoFromAddress(VatAddress address)
|
private async Task GetInfoFromAddress(VatAddress address)
|
||||||
|
@ -79,29 +110,6 @@ public partial class CompanyUpdate : IDisposable
|
||||||
ToastService.ShowError($"Ingen virksomheder fundet.");
|
ToastService.ShowError($"Ingen virksomheder fundet.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private async Task GetInfoFromVat(string vatNumber)
|
|
||||||
{
|
|
||||||
var result = await VirkRegistryService
|
|
||||||
.QueryVirkRegistry(
|
|
||||||
new VirkParams
|
|
||||||
{
|
|
||||||
VatNumber = vatNumber
|
|
||||||
});
|
|
||||||
if (!result.Any())
|
|
||||||
{
|
|
||||||
ToastService.ShowError($"Firma med CVR '{vatNumber}' findes ikke.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ToastService.ShowSuccess($"Data for '{vatNumber}' er hentet.");
|
|
||||||
_virkRegInfo = result[0];
|
|
||||||
_companyDto.Name = _virkRegInfo.Name;
|
|
||||||
_companyDto.Address1 = _virkRegInfo.CoName;
|
|
||||||
_companyDto.Address2 = _virkRegInfo.Address;
|
|
||||||
_companyDto.ZipCode = _virkRegInfo.ZipCode;
|
|
||||||
_companyDto.City = _virkRegInfo.City;
|
|
||||||
_companyDto.VatNumber = _virkRegInfo.VatNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SelectCompany(string vatNumber)
|
private void SelectCompany(string vatNumber)
|
||||||
{
|
{
|
||||||
_virkRegInfo = (from x in VInfos where x.VatNumber == vatNumber select x).First();
|
_virkRegInfo = (from x in VInfos where x.VatNumber == vatNumber select x).First();
|
||||||
|
@ -113,16 +121,9 @@ public partial class CompanyUpdate : IDisposable
|
||||||
_companyDto.VatNumber = _virkRegInfo.VatNumber;
|
_companyDto.VatNumber = _virkRegInfo.VatNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
|
||||||
{
|
|
||||||
_formInvalid = !_editContext!.Validate();
|
|
||||||
StateHasChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Interceptor.DisposeEvent();
|
Interceptor.DisposeEvent();
|
||||||
_editContext.OnFieldChanged -= HandleFieldChanged!;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -64,7 +64,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Næste besøg</th>
|
<th scope="row">Næste besøg</th>
|
||||||
<td><div class="state rounded-circle @(VisitState(CompanyDto.LastVisit))"></div></td>
|
<td><DisplayStateComponent StateClass="@(VisitState(CompanyDto.LastVisit))"></DisplayStateComponent></td>
|
||||||
<td>@CompanyDto.NextVisit</td>
|
<td>@CompanyDto.NextVisit</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -18,7 +18,9 @@ using System.Threading.Tasks;
|
||||||
using Wonky.Client.HttpInterceptors;
|
using Wonky.Client.HttpInterceptors;
|
||||||
using Wonky.Client.HttpRepository;
|
using Wonky.Client.HttpRepository;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Wonky.Client.Services;
|
||||||
using Wonky.Entity.DTO;
|
using Wonky.Entity.DTO;
|
||||||
|
using Wonky.Entity.Models;
|
||||||
|
|
||||||
namespace Wonky.Client.Pages;
|
namespace Wonky.Client.Pages;
|
||||||
|
|
||||||
|
@ -26,9 +28,11 @@ public partial class CompanyView : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] public ICompanyHttpRepository CompanyRepo { get; set; }
|
[Inject] public ICompanyHttpRepository CompanyRepo { get; set; }
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
|
[Inject] public VirkRegistryService VirkRegistryService { get; set; }
|
||||||
[Parameter] public string Account { get; set; } = "";
|
[Parameter] public string Account { get; set; } = "";
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
private CompanyDto CompanyDto { get; set; } = new ();
|
private CompanyDto CompanyDto { get; set; } = new ();
|
||||||
|
private VirkRegInfo VirkRegInfo { get; set; } = new();
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,35 +23,26 @@
|
||||||
|
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div>
|
<ItemGroupDropdown OnChanged="SetItemGroup"/>
|
||||||
<ItemGroupDropdown OnChanged="SetItemGroup"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div>
|
|
||||||
<ItemSortDropdown OnChanged="SetSortCol"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div>
|
|
||||||
<ItemSearchDropdown OnChanged="SetSearchCol"/>
|
<ItemSearchDropdown OnChanged="SetSearchCol"/>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div>
|
|
||||||
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
<SearchPhrase OnChanged="SetSearchPhrase"/>
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col">
|
||||||
<div class="row">
|
<ItemSortDropdown OnChanged="SetSortCol"/>
|
||||||
<div class="col-md-8">
|
|
||||||
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<PageSizeDropdown OnChanged="SetPageSize"></PageSizeDropdown>
|
<PageSizeDropdown OnChanged="SetPageSize"></PageSizeDropdown>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<Pagination MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></Pagination>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<ItemTable SalesItems="SalesItemList"></ItemTable>
|
<ItemTable SalesItems="SalesItemList"></ItemTable>
|
||||||
|
|
BIN
Wonky.Client/wwwroot/state.png
Normal file
BIN
Wonky.Client/wwwroot/state.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 591 B |
9
Wonky.Entity/VirkState.cs
Normal file
9
Wonky.Entity/VirkState.cs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
namespace Wonky.Entity;
|
||||||
|
|
||||||
|
public enum VirkState
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Good,
|
||||||
|
Bad,
|
||||||
|
Ugly
|
||||||
|
}
|
Loading…
Reference in a new issue