wip
This commit is contained in:
parent
d66e65bc50
commit
799354b37b
12 changed files with 146 additions and 128 deletions
|
@ -29,7 +29,7 @@ public partial class CompanySearchDropdown : IDisposable
|
|||
[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 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);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace Wonky.Client.Components
|
|||
[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 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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -21,19 +21,22 @@
|
|||
@attribute [Authorize(Roles = "Adviser")]
|
||||
|
||||
<h2>Opret firma</h2>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="card bg-light mb-2">
|
||||
<div class="card-header">
|
||||
CVR data
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<VatNumberInputComponent OnValidSubmit="GetInfoFromVat"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="card-body">
|
||||
<VatAddressInputComponent OnValidSubmit="GetInfoFromAddress"/>
|
||||
</div>
|
||||
@if (VInfos.Any())
|
||||
{
|
||||
<div class="card-body">
|
||||
@foreach (var info in VInfos)
|
||||
{
|
||||
<div class="row">
|
||||
<div class="row mb-2">
|
||||
<div class="col">
|
||||
@info.VatNumber
|
||||
</div>
|
||||
|
@ -48,76 +51,93 @@
|
|||
</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">
|
||||
<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>
|
||||
</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">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Adresse</th>
|
||||
<td></td>
|
||||
<td>
|
||||
<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">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Adresse2</th>
|
||||
<td></td>
|
||||
<td>
|
||||
<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">
|
||||
</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>
|
||||
</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">
|
||||
</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>
|
||||
</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">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Telefon</th>
|
||||
<td></td>
|
||||
<td>
|
||||
<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">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Mobil</th>
|
||||
<td></td>
|
||||
<td>
|
||||
<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">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Email</th>
|
||||
<td></td>
|
||||
<td>
|
||||
<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">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Attention</th>
|
||||
<td></td>
|
||||
<td>
|
||||
<InputText id="attention" class="form-control" @bind-Value="_companyDto.Attention"/>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-12 text-right">
|
||||
|
@ -125,3 +145,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
</div>
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -55,13 +58,6 @@ namespace Wonky.Client.Pages
|
|||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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}");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue