This commit is contained in:
Frede Hundewadt 2022-03-22 13:28:46 +01:00
parent d66e65bc50
commit 799354b37b
12 changed files with 146 additions and 128 deletions

View file

@ -28,8 +28,8 @@ public partial class CompanySearchDropdown : IDisposable
[Inject] private UserPreferenceService UserPreferenceService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();
private string? Selection { get; set; }
private Preferences _preferences = new();
private string Selection { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
UserPreferenceService.OnChange += ProfileServiceOnOnChange;
@ -39,9 +39,7 @@ public partial class CompanySearchDropdown : IDisposable
private async Task OnSelectionChanged(ChangeEventArgs e)
{
var val = e.Value.ToString();
if (val == "-1")
{
val = "name"; };
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetCompanySearch(val);
}

View file

@ -27,8 +27,8 @@ namespace Wonky.Client.Components
[Inject] private UserPreferenceService UserPreferenceService { get; set; }
[Parameter] public EventCallback<string> OnChanged { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();
private string? Selection { get; set; }
private Preferences _preferences = new();
private string Selection { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
UserPreferenceService.OnChange += ProfileServiceOnOnChange;
@ -38,7 +38,7 @@ namespace Wonky.Client.Components
private async Task OnSelectionChanged(ChangeEventArgs e)
{
var val = e.Value.ToString();
if (val == "-1") {val = "name";};
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetCompanySort(val);
}

View file

@ -31,7 +31,7 @@ public partial class ItemGroupDropdown
private async Task OnSelectionChanged(ChangeEventArgs e)
{
var val = e.Value.ToString();
if (val == "-1") {val = "0";};
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
}
}

View file

@ -36,7 +36,7 @@ public partial class ItemSearchDropdown : IDisposable
private async Task OnSelectChanged(ChangeEventArgs e)
{
var val = e.Value.ToString();
if (val == "-1") {val = "name";};
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetItemSearch(val);
}

View file

@ -36,7 +36,7 @@ public partial class ItemSortDropdown : IDisposable
private async Task OnSelectChanged(ChangeEventArgs e)
{
var val = e.Value.ToString();
if (val == "-1") {val = "name";};
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetItemSort(val);
}

View file

@ -38,7 +38,7 @@ namespace Wonky.Client.Components
private async Task OnSelectChanged(ChangeEventArgs e)
{
var val = e.Value.ToString();
if (val == "-1") {val = "10";};
if (val == "-1") return;
await OnChanged.InvokeAsync(val);
await UserPreferenceService.SetPageSize(val);
}

View file

@ -27,7 +27,7 @@ namespace Wonky.Client.Components
private void SearchChanged()
{
_timer = new Timer(1000);
_timer = new Timer(500);
_timer.Elapsed += OnTimerElapsed;
_timer.AutoReset = false;
_timer.Enabled = true;

View file

@ -21,103 +21,123 @@
@attribute [Authorize(Roles = "Adviser")]
<h2>Opret firma</h2>
<div class="row">
<div class="col">
<VatNumberInputComponent OnValidSubmit="GetInfoFromVat" />
<div class="card bg-light mb-2">
<div class="card-header">
CVR data
</div>
</div>
<div class="row">
<div class="col">
<VatAddressInputComponent OnValidSubmit="GetInfoFromAddress" />
@if (VInfos.Any())
<div class="card-body">
<VatNumberInputComponent OnValidSubmit="GetInfoFromVat"/>
</div>
<div class="card-body">
<VatAddressInputComponent OnValidSubmit="GetInfoFromAddress"/>
</div>
@if (VInfos.Any())
{
<div class="card-body">
@foreach (var info in VInfos)
{
@foreach (var info in VInfos)
{
<div class="row">
<div class="col">
@info.VatNumber
</div>
<div class="col">
@info.Name
</div>
<div class="col">
@info.States[^1].State
</div>
<div class="col">
<button class="btn btn-primary" @onclick="@(() => SelectCompany(info.VatNumber))">OVERFØR</button>
</div>
</div>
}
<div class="row mb-2">
<div class="col">
@info.VatNumber
</div>
<div class="col">
@info.Name
</div>
<div class="col">
@info.States[^1].State
</div>
<div class="col">
<button class="btn btn-primary" @onclick="@(() => SelectCompany(info.VatNumber))">OVERFØR</button>
</div>
</div>
}
</div>
</div>
}
</div>
<EditForm EditContext="_editContext" OnValidSubmit="Create" class="card card-body bg-light mt-5">
<div class="card bg-light">
<EditForm EditContext="_editContext" OnValidSubmit="Create" class="card-body">
<DataAnnotationsValidator />
<InputText type="hidden" id="salesRepId" @bind-Value="_companyDto.SalesRepId"/>
<div class="form-group row mb-2">
<label for="name" class="col-md-2 col-form-label">Firmanavn</label>
<div class="col-md-10">
<InputText id="name" class="form-control" @bind-Value="_companyDto.Name"/>
<ValidationMessage For="@(() => _companyDto.Name)"></ValidationMessage>
</div>
</div>
<div class="form-group row mb-2">
<label for="address1" class="col-md-2 col-form-label">Adresse</label>
<div class="col-md-10">
<InputText id="address1" class="form-control" @bind-Value="_companyDto.Address1"/>
</div>
</div>
<div class="form-group row mb-2">
<label for="address2" class="col-md-2 col-form-label">Adresse2</label>
<div class="col-md-10">
<InputText id="address2" class="form-control" @bind-Value="_companyDto.Address2"/>
</div>
</div>
<div class="form-group row mb-2">
<label for="zipCode" class="col-md-2 col-form-label">Postnr</label>
<div class="col-md-10">
<InputText id="zipCode" class="form-control" @bind-Value="_companyDto.ZipCode"/>
<ValidationMessage For="@(() => _companyDto.ZipCode)"></ValidationMessage>
</div>
</div>
<div class="form-group row mb-2">
<label for="city" class="col-md-2 col-form-label">Bynavn</label>
<div class="col-md-10">
<InputText id="city" class="form-control" @bind-Value="_companyDto.City"/>
<ValidationMessage For="@(() => _companyDto.City)"></ValidationMessage>
</div>
</div>
<div class="form-group row mb-2">
<label for="vatNumber" class="col-md-2 col-form-label">Reg.nr.</label>
<div class="col-md-10">
<InputText id="vatNumber" class="form-control" @bind-Value="_companyDto.VatNumber"/>
</div>
</div>
<div class="form-group row mb-2">
<label for="phone" class="col-md-2 col-form-label">Telefon nummer</label>
<div class="col-md-10">
<InputText id="phone" class="form-control" @bind-Value="_companyDto.Phone"/>
</div>
</div>
<div class="form-group row mb-2">
<label for="mobile" class="col-md-2 col-form-label">Mobil nummer</label>
<div class="col-md-10">
<InputText id="mobile" class="form-control" @bind-Value="_companyDto.Mobile"/>
</div>
</div>
<div class="form-group row mb-2">
<label for="email" class="col-md-2 col-form-label">Email</label>
<div class="col-md-10">
<InputText id="email" class="form-control" @bind-Value="_companyDto.Email"/>
</div>
</div>
<div class="form-group row mb-2">
<label for="attention" class="col-md-2 col-form-label">Attention</label>
<div class="col-md-10">
<InputText id="attention" class="form-control" @bind-Value="_companyDto.Attention"/>
</div>
</div>
<table class="table">
<thead>
</thead>
<tbody>
<tr>
<th scope="row">Reg.nr.</th>
<td class="state"><DisplayStateComponent StateClass="@RegState"></DisplayStateComponent></td>
<td>
<InputText id="vatNumber" class="form-control" @bind-Value="_companyDto.VatNumber"/>
</td>
</tr>
<tr>
<th scope="row">Firmanavn</th>
<td></td>
<td>
<InputText id="name" class="form-control" @bind-Value="_companyDto.Name"/>
<ValidationMessage For="@(() => _companyDto.Name)"></ValidationMessage>
</td>
</tr>
<tr>
<th scope="row">Adresse</th>
<td></td>
<td>
<InputText id="address1" class="form-control" @bind-Value="_companyDto.Address1"/>
</td>
</tr>
<tr>
<th scope="row">Adresse2</th>
<td></td>
<td>
<InputText id="address2" class="form-control" @bind-Value="_companyDto.Address2"/>
</td>
</tr>
<tr>
<th scope="row">Postnr</th>
<td></td>
<td>
<InputText id="zipCode" class="form-control" @bind-Value="_companyDto.ZipCode"/>
<ValidationMessage For="@(() => _companyDto.ZipCode)"></ValidationMessage>
</td>
</tr>
<tr>
<th scope="row">Bynavn</th>
<td></td>
<td>
<InputText id="city" class="form-control" @bind-Value="_companyDto.City"/>
<ValidationMessage For="@(() => _companyDto.City)"></ValidationMessage>
</td>
</tr>
<tr>
<th scope="row">Telefon</th>
<td></td>
<td>
<InputText id="phone" class="form-control" @bind-Value="_companyDto.Phone"/>
</td>
</tr>
<tr>
<th scope="row">Mobil</th>
<td></td>
<td>
<InputText id="mobile" class="form-control" @bind-Value="_companyDto.Mobile"/>
</td>
</tr>
<tr>
<th scope="row">Email</th>
<td></td>
<td>
<InputText id="email" class="form-control" @bind-Value="_companyDto.Email"/>
</td>
</tr>
<tr>
<th scope="row">Attention</th>
<td></td>
<td>
<InputText id="attention" class="form-control" @bind-Value="_companyDto.Attention"/>
</td>
</tr>
</tbody>
</table>
<div class="row mb-2">
<div class="col-md-12 text-right">
@ -125,3 +145,4 @@
</div>
</div>
</EditForm>
</div>

View file

@ -34,10 +34,6 @@ namespace Wonky.Client.Pages
{
public partial class CompanyCreate : IDisposable
{
private CompanyDto _companyDto = new();
private VirkRegInfo _virkRegInfo = new();
private EditContext _editContext;
private bool _formInvalid = true;
private List<VirkRegInfo> VInfos { get; set; } = new();
[Inject] public ICompanyHttpRepository CompanyRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
@ -46,6 +42,11 @@ namespace Wonky.Client.Pages
[Inject] public VirkRegistryService VirkRegistryService { get; set; }
[Inject] public ILocalStorageService StorageService { get; set; }
[Inject] public NavigationManager Navigation { get; set; }
private CompanyDto _companyDto = new();
private VirkRegInfo _virkRegInfo = new();
private EditContext _editContext;
private bool _formInvalid = true;
private string RegState { get; set; } = "";
protected override async Task OnInitializedAsync()
{
@ -75,27 +76,21 @@ namespace Wonky.Client.Pages
}
private async Task GetInfoFromVat(string vatNumber)
{
var result = await VirkRegistryService
VInfos = await VirkRegistryService
.QueryVirkRegistry(new VirkParams {VatNumber = vatNumber});
if (!result.Any())
if (!VInfos.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;
SelectCompany(vatNumber);
}
private void SelectCompany(string vatNumber)
{
_virkRegInfo = (from x in VInfos where x.VatNumber == vatNumber select x).First();
RegState = _virkRegInfo.States[^1].State == "NORMAL" ? "the-good" : "the-ugly";
_companyDto.Name = _virkRegInfo.Name;
_companyDto.Address1 = _virkRegInfo.CoName;
_companyDto.Address2 = _virkRegInfo.Address;

View file

@ -39,13 +39,16 @@ namespace Wonky.Client.Pages
protected override async Task OnInitializedAsync()
{
// set preferences
_preferences = await UserPrefService.GetPreferences();
_paging.OrderBy = _preferences.CompanySort;
_paging.SearchColumn = _preferences.CompanySearch;
_paging.PageSize = Convert.ToInt32(_preferences.PageSize);
//
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
// get companies
await GetCompanies();
}
@ -54,14 +57,7 @@ namespace Wonky.Client.Pages
_paging.PageNumber = page;
await GetCompanies();
}
private async Task GetCompanies()
{
var pagingResponse = await CompanyRepo.GetCompaniesPaged(_paging);
Companies = pagingResponse.Items;
MetaData = pagingResponse.MetaData;
}
private async Task SetSearchCol(string searchColumn)
{
_paging.SearchColumn = searchColumn;
@ -95,6 +91,14 @@ namespace Wonky.Client.Pages
_paging.PageNumber--;
await GetCompanies();
}
private async Task GetCompanies()
{
var pagingResponse = await CompanyRepo.GetCompaniesPaged(_paging);
Companies = pagingResponse.Items;
MetaData = pagingResponse.MetaData;
}
public void Dispose() => Interceptor.DisposeEvent();
}
}

View file

@ -67,7 +67,7 @@ public partial class CompanyUpdate : IDisposable
{
await CompanyRepo.UpdateCompany(_companyDto);
ToastService.ShowSuccess($"Godt så. Firma '{_companyDto!.Name}' er opdateret.");
Navigation.NavigateTo($"/company/account{_companyDto.Account}");
Navigation.NavigateTo($"/company/account/{_companyDto.Account}");
}
}

View file

@ -42,7 +42,7 @@
<td colspan="2">@CompanyDto.ZipCode</td>
</tr>
<tr>
<th scope="row">Postnummer</th>
<th scope="row">Bynavn</th>
<td colspan="2">@CompanyDto.City</td>
</tr>
<tr>