add confirmation for workday report - add vat lookup by name
This commit is contained in:
parent
3b8f8948c1
commit
2430c2f7d7
25 changed files with 218 additions and 202 deletions
|
@ -18,22 +18,23 @@
|
|||
<EditForm EditContext="_editContext" OnValidSubmit="SubmitForm">
|
||||
<DataAnnotationsValidator/>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<InputText id="streetName" class="form-control" placeholder="Vejnavn"
|
||||
@bind-Value="@Address.StreetName" />
|
||||
<ValidationMessage For="@(() => Address.StreetName)" />
|
||||
<label for="streetName" class="col-md-2 col-form-label">Adresse</label>
|
||||
<div class="col-md-4">
|
||||
<InputText id="streetName" class="form-control" placeholder="Rudolfgårdsvej"
|
||||
@bind-Value="@Address.StreetName"/>
|
||||
<ValidationMessage For="@(() => Address.StreetName)"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<InputText id="houseNumber" class="form-control" placeholder="Husnummer"
|
||||
@bind-Value="Address.HouseNumber" />
|
||||
<ValidationMessage For="@(() => Address.HouseNumber)" />
|
||||
<div class="col-md-2">
|
||||
<InputText id="houseNumber" class="form-control" placeholder="9"
|
||||
@bind-Value="Address.HouseNumber"/>
|
||||
<ValidationMessage For="@(() => Address.HouseNumber)"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<InputText id="zipCode" class="form-control" placeholder="Postnummer"
|
||||
@bind-Value="Address.ZipCode" />
|
||||
<ValidationMessage For="@(() => Address.ZipCode)" />
|
||||
<div class="col-md-2">
|
||||
<InputText id="zipCode" class="form-control" placeholder="8260"
|
||||
@bind-Value="Address.ZipCode"/>
|
||||
<ValidationMessage For="@(() => Address.ZipCode)"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="col-md-2">
|
||||
<button class="btn btn-primary" type="submit">HENT</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -17,13 +17,14 @@
|
|||
|
||||
<EditForm EditContext="_editName" OnValidSubmit="SubmitForm">
|
||||
<DataAnnotationsValidator/>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<InputText id="vatNumber" class="form-control" placeholder="26991765"
|
||||
@bind-Value="@EntityName"/>
|
||||
<ValidationMessage For="@(() => EntityName)"/>
|
||||
<div class="row mb-1">
|
||||
<label for="companyName" class="col-md-2 col-form-label">Navn</label>
|
||||
<div class="col-md-8">
|
||||
<InputText id="companyName" class="form-control" placeholder="Innotec Danmark A/S"
|
||||
@bind-Value="@CompanyName"/>
|
||||
<ValidationMessage For="@(() => CompanyName)"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="col-md-2">
|
||||
<button class="btn btn-primary" type="submit" disabled="@_formInvalid">HENT</button>
|
||||
</div>
|
||||
</div>
|
|
@ -19,21 +19,21 @@ using Microsoft.AspNetCore.Components.Forms;
|
|||
using Wonky.Client.Models;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
public partial class VatEntityNameInputComponent : IDisposable
|
||||
public partial class VatCompanyNameInputComponent : IDisposable
|
||||
{
|
||||
[Parameter] public string EntityName { get; set; } = "";
|
||||
[Parameter] public string CompanyName { get; set; } = "";
|
||||
private EditContext _editName { get; set; }
|
||||
private bool _formInvalid = true;
|
||||
[Parameter] public EventCallback<string> OnValidSubmit { get; set; }
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
_editName = new EditContext(EntityName);
|
||||
_editName = new EditContext(CompanyName);
|
||||
_editName.OnFieldChanged += HandleFieldChanged;
|
||||
}
|
||||
private async Task SubmitForm()
|
||||
{
|
||||
await OnValidSubmit.InvokeAsync(EntityName);
|
||||
await OnValidSubmit.InvokeAsync(CompanyName);
|
||||
}
|
||||
private void HandleFieldChanged(object? sender, FieldChangedEventArgs e)
|
||||
{
|
|
@ -18,12 +18,14 @@
|
|||
<EditForm EditContext="_editVatNumber" OnValidSubmit="SubmitForm">
|
||||
<DataAnnotationsValidator/>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="col-md-2 col-form-label">CVR/ORG</div>
|
||||
<div class="col-md-4">
|
||||
<InputText id="vatNumber" class="form-control" placeholder="26991765"
|
||||
@bind-Value="@VatNumber"/>
|
||||
<ValidationMessage For="@(() => VatNumber)"/>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="col-md-4"></div>
|
||||
<div class="col-md-2">
|
||||
<button class="btn btn-primary" type="submit" disabled="@_formInvalid">HENT</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -23,6 +23,5 @@ public interface IOfficeCustomerHttpRepository
|
|||
{
|
||||
Task<PagingResponse<CompanyDto>> GetCompaniesPaged(CompanyPagingParams pagingParameters);
|
||||
Task<PagingResponse<CompanyDto>> GetCompaniesPagedSalesRep(string salesRepId, CompanyPagingParams pagingParameters);
|
||||
Task<PagingResponse<CompanyDto>> GetCompaniesPagedCountry(string countryCode, CompanyPagingParams pagingParameters);
|
||||
Task<CompanyDto> GetCompanyById(string companyId);
|
||||
}
|
|
@ -44,7 +44,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
private readonly NavigationManager _navigation;
|
||||
private ILogger<OfficeCustomerHttpRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _apiConfig;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public OfficeCustomerHttpRepository(HttpClient client,
|
||||
ILogger<OfficeCustomerHttpRepository> logger,
|
||||
|
@ -54,37 +54,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
_client = client;
|
||||
_logger = logger;
|
||||
_navigation = navigation;
|
||||
_apiConfig = apiConfig.Value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// get a paged list of all customer entities
|
||||
/// </summary>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagingResponse<CompanyDto>> GetCompaniesPaged(CompanyPagingParams pagingParameters)
|
||||
{
|
||||
var queryString = new Dictionary<string, string>
|
||||
{
|
||||
["pageNumber"] = pagingParameters.PageNumber.ToString(),
|
||||
["pageSize"] = pagingParameters.PageSize.ToString(),
|
||||
["searchTerm"] = pagingParameters.SearchTerm,
|
||||
["searchColumn"] = pagingParameters.SearchColumn,
|
||||
["orderBy"] = pagingParameters.OrderBy,
|
||||
["isHidden"] = pagingParameters.IsHidden.ToString(),
|
||||
["hasFolded"] = pagingParameters.HasFolded.ToString()
|
||||
};
|
||||
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.OfficeCustomers}", queryString));
|
||||
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
|
||||
var pagingResponse = new PagingResponse<CompanyDto>
|
||||
{
|
||||
Items = JsonSerializer.Deserialize<List<CompanyDto>>(content, _options),
|
||||
MetaData = JsonSerializer.Deserialize<MetaData>(response.Headers.GetValues("X-Pagination").First(), _options)
|
||||
};
|
||||
return pagingResponse;
|
||||
|
||||
_api = apiConfig.Value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -105,7 +75,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
["isHidden"] = pagingParameters.IsHidden.ToString(),
|
||||
["hasFolded"] = pagingParameters.HasFolded.ToString()
|
||||
};
|
||||
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.OfficeCustomers}/salesRep/{salesRepId}", queryString));
|
||||
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/salesRep/{salesRepId}", queryString));
|
||||
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
|
||||
|
@ -121,10 +91,9 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
/// <summary>
|
||||
/// Get paged list of customer companies by country code
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagingResponse<CompanyDto>> GetCompaniesPagedCountry(string countryCode, CompanyPagingParams pagingParameters)
|
||||
public async Task<PagingResponse<CompanyDto>> GetCompaniesPaged(CompanyPagingParams pagingParameters)
|
||||
{
|
||||
var queryString = new Dictionary<string, string>
|
||||
{
|
||||
|
@ -136,7 +105,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
["isHidden"] = pagingParameters.IsHidden.ToString(),
|
||||
["hasFolded"] = pagingParameters.HasFolded.ToString()
|
||||
};
|
||||
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.OfficeCustomers}/country/{countryCode}", queryString));
|
||||
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}", queryString));
|
||||
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
|
||||
|
@ -155,7 +124,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
/// <returns></returns>
|
||||
public async Task<CompanyDto> GetCompanyById(string companyId)
|
||||
{
|
||||
var company = await _client.GetFromJsonAsync<CompanyDto>($"{_apiConfig.OfficeCustomers}/id/{companyId}");
|
||||
var company = await _client.GetFromJsonAsync<CompanyDto>($"{_api.OfficeCustomers}/id/{companyId}");
|
||||
return company ?? new CompanyDto();
|
||||
}
|
||||
|
||||
|
@ -166,7 +135,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
/// <returns>company id</returns>
|
||||
public async Task<string> CreateCompany(CompanyDto model)
|
||||
{
|
||||
var response = await _client.PostAsJsonAsync($"{_apiConfig.OfficeCustomers}", model);
|
||||
var response = await _client.PostAsJsonAsync($"{_api.OfficeCustomers}", model);
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
var result = JsonSerializer.Deserialize<CompanyDto>(content, _options);
|
||||
return result.CompanyId;
|
||||
|
@ -180,7 +149,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
/// <returns></returns>
|
||||
public async Task<bool> UpdateCompany(string companyId, CompanyDto model)
|
||||
{
|
||||
var response = await _client.PutAsJsonAsync($"{_apiConfig.OfficeCustomers}/{companyId}", model);
|
||||
var response = await _client.PutAsJsonAsync($"{_api.OfficeCustomers}/{companyId}", model);
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
Console.WriteLine(content);
|
||||
return response.IsSuccessStatusCode;
|
||||
|
@ -193,7 +162,7 @@ public class OfficeCustomerHttpRepository : IOfficeCustomerHttpRepository
|
|||
/// <returns></returns>
|
||||
public async Task<bool> DeleteCompany(string companyId)
|
||||
{
|
||||
var response = await _client.DeleteAsync($"{_apiConfig.OfficeCustomers}/{companyId}");
|
||||
var response = await _client.DeleteAsync($"{_api.OfficeCustomers}/{companyId}");
|
||||
return response.IsSuccessStatusCode;
|
||||
}
|
||||
}
|
|
@ -26,28 +26,32 @@
|
|||
<table class="table table-striped table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">Virksomhedsopslag</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Moms/Org Reg.nr.</th>
|
||||
@if (_dk)
|
||||
{
|
||||
<th>Adresse</th>
|
||||
}
|
||||
<th>Virksomhedsopslag</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@if (_dk)
|
||||
{
|
||||
<tr>
|
||||
<td class="align-middle">
|
||||
<VatNumberInputComponent OnValidSubmit="GetInfoFromVat"/>
|
||||
<td>
|
||||
<VatCompanyNameInputComponent CompanyName="@_company.Name" OnValidSubmit="GetInfoFromName"/>
|
||||
</td>
|
||||
@if (_dk)
|
||||
{
|
||||
<td class="align-middle">
|
||||
<VatAddressInputComponent Address="_vatAddress" OnValidSubmit="GetInfoFromAddress"/>
|
||||
</td>
|
||||
}
|
||||
</tr>
|
||||
}
|
||||
<tr>
|
||||
<td>
|
||||
<VatNumberInputComponent VatNumber="@_company.VatNumber" OnValidSubmit="GetInfoFromVat"/>
|
||||
</td>
|
||||
</tr>
|
||||
@if (_dk)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<VatAddressInputComponent Address="_vatAddress" OnValidSubmit="GetInfoFromAddress"/>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
@if (_vInfos.Any() && _showInfos)
|
||||
{
|
||||
<tr>
|
||||
|
|
|
@ -80,6 +80,17 @@ namespace Wonky.Client.Pages
|
|||
|
||||
}
|
||||
|
||||
private async Task GetInfoFromName(string entityName)
|
||||
{
|
||||
_toast.ShowInfo("Vent for firma info ...");
|
||||
_vInfos = await _vatService
|
||||
.QueryVirkRegistry(new VirkParams {EntityName = entityName});
|
||||
if (!_vInfos.Any())
|
||||
{
|
||||
_toast.ShowError($"Firma med navn '{entityName}' findes ikke.");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task GetInfoFromAddress(VatAddress address)
|
||||
{
|
||||
_showInfos = true;
|
||||
|
@ -93,7 +104,7 @@ namespace Wonky.Client.Pages
|
|||
});
|
||||
if (!_vInfos.Any())
|
||||
{
|
||||
_toast.ShowWarning($"Ingen data fundet ...");
|
||||
_toast.ShowWarning($"Ingen data for adresse ...");
|
||||
}
|
||||
}
|
||||
private async Task GetInfoFromVat(string vatNumber)
|
||||
|
|
|
@ -263,3 +263,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</EditForm>
|
||||
<Confirmation BodyMessage="@_prompt" OnOkClicked="ReportSaveConfirmed" @ref="_confirmReport"/>
|
||||
|
|
|
@ -24,6 +24,7 @@ using Wonky.Client.HttpInterceptors;
|
|||
using Wonky.Client.HttpInterfaces;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Wonky.Client.Services;
|
||||
using Wonky.Client.Shared;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Models;
|
||||
using Wonky.Entity.Views;
|
||||
|
@ -52,6 +53,8 @@ public partial class CrmNewReportPage : IDisposable
|
|||
private TimeOnly _checkOut { get; set; } = new(12, 0);
|
||||
private DateTime _leaveBegin { get; set; } = DateTime.Now;
|
||||
private DateTime _leaveEnd { get; set; } = DateTime.Now;
|
||||
private Confirmation _confirmReport { get; set; }
|
||||
private string _prompt { get; set; } = "";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
@ -93,7 +96,20 @@ public partial class CrmNewReportPage : IDisposable
|
|||
_editContext.OnValidationStateChanged += ValidationChanged;
|
||||
}
|
||||
|
||||
private async Task SubmitReport()
|
||||
private async Task ReportSaveConfirmed()
|
||||
{
|
||||
_working = true;
|
||||
|
||||
var result = await CrmReportRepo.PostReport($"{_workDate:yyyy-MM-dd}", _report);
|
||||
await _userPrefs.SetKmMorning(0);
|
||||
|
||||
_toast.ShowInfo($"Rapport oprettet {_workDate}");
|
||||
_working = false;
|
||||
_navigator.NavigateTo("/home");
|
||||
|
||||
}
|
||||
|
||||
private void SubmitReport()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(_report.DayTypeEnum))
|
||||
{
|
||||
|
@ -107,8 +123,6 @@ public partial class CrmNewReportPage : IDisposable
|
|||
return;
|
||||
}
|
||||
|
||||
_working = true;
|
||||
|
||||
DateTime checkIn;
|
||||
DateTime checkOut;
|
||||
if (_report.DayTypeEnum.ToLower().Contains("leave"))
|
||||
|
@ -133,12 +147,10 @@ public partial class CrmNewReportPage : IDisposable
|
|||
_logger.LogDebug("_workDate => {workDate}", $"{_workDate:yyyy-MM-dd}");
|
||||
_logger.LogDebug("_report => {report}", JsonSerializer.Serialize(_report));
|
||||
|
||||
var result = await CrmReportRepo.PostReport($"{_workDate:yyyy-MM-dd}", _report);
|
||||
await _userPrefs.SetKmMorning(0);
|
||||
_prompt = $"Rapport for {_workDate.ToLongDateString()}?";
|
||||
|
||||
_confirmReport.Show();
|
||||
|
||||
_toast.ShowInfo($"Rapport oprettet {_workDate}");
|
||||
_working = false;
|
||||
_navigator.NavigateTo("/home");
|
||||
}
|
||||
|
||||
private void OnTimeChanged()
|
||||
|
|
|
@ -176,7 +176,7 @@ public partial class CrmViewCompanyPage : IDisposable
|
|||
return;
|
||||
}
|
||||
_toast.ShowInfo("Vent venligst ....");
|
||||
_hideButtons = true;
|
||||
//_hideButtons = true;
|
||||
_company.LastVisit = $"{_lastVisit:yyyy-MM-dd}";
|
||||
_company.NextVisit = $"{_nextVisit:yyyy-MM-dd}";
|
||||
_company.IsHidden = 0;
|
||||
|
@ -188,19 +188,16 @@ public partial class CrmViewCompanyPage : IDisposable
|
|||
_company.IsDirty = _isDirty;
|
||||
|
||||
var success = await _companyRepo.UpdateCompany(CompanyId, _company );
|
||||
if (success)
|
||||
_toast.ShowSuccess("Opdatering er afsendt. Der går nogle minutter inden data er opdateret.");
|
||||
_company = await _companyRepo.GetCompanyById(_company.CompanyId);
|
||||
_company.ValidVat = 1;
|
||||
_enableActivity = 1;
|
||||
if (_virkRegInfo.States[0].State.ToLower() != "normal")
|
||||
{
|
||||
_toast.ShowSuccess("Opdatering er afsendt. Der går nogle minutter inden data er opdateret.");
|
||||
_company = await _companyRepo.GetCompanyById(_company.CompanyId);
|
||||
_company.ValidVat = 1;
|
||||
_enableActivity = _company.ValidVat;
|
||||
if (_virkRegInfo.States[0].State.ToLower() != "normal")
|
||||
{
|
||||
_company.HasFolded = 1;
|
||||
}
|
||||
StateHasChanged();
|
||||
_company.HasFolded = 1;
|
||||
}
|
||||
_hideButtons = false;
|
||||
StateHasChanged();
|
||||
//_hideButtons = false;
|
||||
}
|
||||
|
||||
private async Task GetInfoFromAddress(VatAddress address)
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace Wonky.Client.Pages;
|
|||
public partial class OfficeListCustomerPage : IDisposable
|
||||
{
|
||||
[Parameter] public string UserId { get; set; } = "";
|
||||
[Parameter] public string CountryCode { get; set; } = "";
|
||||
[Parameter] public string CountryCode { get; set; } = "dk";
|
||||
|
||||
[Inject] public ILogger<OfficeListCustomerPage> _logger { get; set; }
|
||||
[Inject] public HttpInterceptorService _interceptor { get; set; }
|
||||
|
@ -45,6 +45,9 @@ public partial class OfficeListCustomerPage : IDisposable
|
|||
|
||||
// set preferences
|
||||
_preferences = await PreferenceService.GetPreferences();
|
||||
|
||||
_paging.Country = CountryCode;
|
||||
|
||||
_paging.OrderBy = _preferences.CompanySort;
|
||||
_paging.SearchColumn = _preferences.CompanySearch;
|
||||
_paging.PageSize = Convert.ToInt32(_preferences.PageSize);
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*@
|
||||
|
||||
@using Wonky.Client.Components
|
||||
@page "/office/companies/{CountryCode}/{UserId}"
|
||||
@page "/office/users/advisors/{CountryCode}/{UserId}/companies"
|
||||
|
||||
<div class="sticky-top bg-dark text-light rounded-2 px-3">
|
||||
<div class="container-fluid pt-3">
|
||||
|
|
|
@ -27,9 +27,9 @@ public partial class OfficeListCustomerSalesRepPage : IDisposable
|
|||
[Parameter] public string UserId { get; set; } = "";
|
||||
[Parameter] public string CountryCode { get; set; } = "";
|
||||
|
||||
[Inject] public ILogger<OfficeListCustomerSalesRepPage> _logger { get; set; }
|
||||
[Inject] public HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] public IOfficeCustomerHttpRepository _companyRepo { get; set; }
|
||||
[Inject] public ILogger<OfficeListCustomerSalesRepPage> Logger { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IOfficeCustomerHttpRepository CustomerRepo { get; set; }
|
||||
[Inject] public UserPreferenceService PreferenceService { get; set; }
|
||||
private List<CompanyDto> _companyList { get; set; } = new();
|
||||
private MetaData _metaData { get; set; } = new();
|
||||
|
@ -40,11 +40,12 @@ public partial class OfficeListCustomerSalesRepPage : IDisposable
|
|||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
_interceptor.DisposeEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
Interceptor.DisposeEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
// set preferences
|
||||
_preferences = await PreferenceService.GetPreferences();
|
||||
_paging.Country = CountryCode;
|
||||
_paging.OrderBy = _preferences.CompanySort;
|
||||
_paging.SearchColumn = _preferences.CompanySearch;
|
||||
_paging.PageSize = Convert.ToInt32(_preferences.PageSize);
|
||||
|
@ -57,67 +58,69 @@ public partial class OfficeListCustomerSalesRepPage : IDisposable
|
|||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task OnFoldedClick()
|
||||
{
|
||||
_includeFolded = !_includeFolded;
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.HasFolded = _includeFolded ? 1 : 0;
|
||||
await GetCompanies();
|
||||
}
|
||||
private async Task SelectedPage(int page)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = page;
|
||||
await GetCompanies();
|
||||
}
|
||||
private async Task OnFoldedClick()
|
||||
{
|
||||
_includeFolded = !_includeFolded;
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.HasFolded = _includeFolded ? 1 : 0;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task SetSearchCol(string searchColumn)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.SearchColumn = searchColumn;
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
}
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageSize = Convert.ToInt32(pageSize);
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
}
|
||||
private async Task SelectedPage(int page)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = page;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task SetSearchPhrase(string searchTerm)
|
||||
{
|
||||
// if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.Length < 3) return;
|
||||
private async Task SetSearchCol(string searchColumn)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.SearchColumn = searchColumn;
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SearchTerm = searchTerm;
|
||||
await GetCompanies();
|
||||
if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.TrimEnd().Length > 2)
|
||||
{
|
||||
_savedSearch = searchTerm;
|
||||
await PreferenceService.SetCompanyFilterPhrase(searchTerm.Trim());
|
||||
}
|
||||
}
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageSize = Convert.ToInt32(pageSize);
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task SetSortCol(string orderBy)
|
||||
private async Task SetSearchPhrase(string searchTerm)
|
||||
{
|
||||
// if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.Length < 3) return;
|
||||
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SearchTerm = searchTerm;
|
||||
await GetCompanies();
|
||||
if (!string.IsNullOrWhiteSpace(searchTerm) && searchTerm.TrimEnd().Length > 2)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.OrderBy = orderBy;
|
||||
await GetCompanies();
|
||||
_savedSearch = searchTerm;
|
||||
await PreferenceService.SetCompanyFilterPhrase(searchTerm.Trim());
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SetSortCol(string orderBy)
|
||||
{
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.OrderBy = orderBy;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task GetCompanies()
|
||||
{
|
||||
var pagingResponse = await _companyRepo.GetCompaniesPagedSalesRep(UserId, _paging);
|
||||
var pagingResponse = await CustomerRepo.GetCompaniesPagedSalesRep(UserId, _paging);
|
||||
_companyList = pagingResponse.Items;
|
||||
_metaData = pagingResponse.MetaData;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_interceptor.DisposeEvent();
|
||||
Interceptor.DisposeEvent();
|
||||
}
|
||||
}
|
|
@ -19,7 +19,7 @@
|
|||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@attribute [Authorize(Roles = "Advisor,Admin")]
|
||||
@attribute [Authorize(Roles = "Advisor,Admin,Office")]
|
||||
|
||||
<div class="sticky-top bg-dark rounded-2 px-3">
|
||||
<div class="container-fluid pt-3">
|
||||
|
|
|
@ -31,31 +31,33 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class SalesCatalogPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CountryCode { get; set; } = "";
|
||||
[Inject] public ILocalStorageService _storage { get; set; }
|
||||
[Inject] public ICatalogHttpRepository _itemRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] public UserPreferenceService _preferenceService { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public ICatalogHttpRepository ItemRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public UserPreferenceService PreferenceService { get; set; }
|
||||
private List<SalesItemView> _items { get; set; } = new();
|
||||
private MetaData _metaData { get; set; } = new();
|
||||
private CatalogPagingParams _paging = new();
|
||||
private Preferences _preferences = new();
|
||||
private UserInfoView _user { get; set; } = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_preferences = await _preferenceService.GetPreferences();
|
||||
_preferences = await PreferenceService.GetPreferences();
|
||||
_user = await Storage.GetItemAsync<UserInfoView>("_xu");
|
||||
_paging.Country = _user.CountryCode;
|
||||
_paging.OrderBy = _preferences.ItemSort;
|
||||
_paging.SearchColumn = _preferences.ItemSearch;
|
||||
_paging.PageSize = Convert.ToInt32(_preferences.PageSize);
|
||||
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
||||
private async Task GetSalesItems()
|
||||
{
|
||||
var pagingResponse = await _itemRepo.GetSalesItemsPaged(_paging);
|
||||
var pagingResponse = await ItemRepo.GetSalesItemsPaged(_paging);
|
||||
_items = pagingResponse.Items!;
|
||||
_metaData = pagingResponse.MetaData;
|
||||
}
|
||||
|
@ -106,6 +108,6 @@ public partial class SalesCatalogPage : IDisposable
|
|||
await GetSalesItems();
|
||||
}
|
||||
|
||||
public void Dispose() => _interceptor.DisposeEvent();
|
||||
public void Dispose() => Interceptor.DisposeEvent();
|
||||
|
||||
}
|
|
@ -79,6 +79,7 @@ namespace Wonky.Client.Shared
|
|||
{
|
||||
new(ClaimTypes.Name, userInfo.FullName),
|
||||
new(ClaimTypes.Email, userInfo.Email),
|
||||
new(ClaimTypes.Country, userInfo.CountryCode),
|
||||
new(ClaimTypes.MobilePhone, userInfo.PhoneNumber),
|
||||
new(ClaimTypes.Expiration, exp)
|
||||
};
|
||||
|
|
|
@ -19,11 +19,11 @@
|
|||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Er du sikker?</h5>
|
||||
<h5 class="modal-title">Bekræft Venligst</h5>
|
||||
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>@BodyMessage</p>
|
||||
<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>
|
||||
|
|
|
@ -26,25 +26,28 @@ namespace Wonky.Client.Shared;
|
|||
|
||||
public partial class PriceListModal : IDisposable
|
||||
{
|
||||
[Parameter] public string CountryCode { get; set; } = "dk";
|
||||
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
|
||||
[Inject] public ICatalogHttpRepository ItemRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public UserPreferenceService PreferenceService { get; set; }
|
||||
|
||||
private string _modalDisplay = "";
|
||||
private bool _showBackdrop;
|
||||
private List<SalesItemView> _items { get; set; } = new();
|
||||
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
|
||||
[Inject] public ICatalogHttpRepository _itemRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] public UserPreferenceService _preferenceService { get; set; }
|
||||
private MetaData? _metaData { get; set; } = new();
|
||||
private CatalogPagingParams _paging = new();
|
||||
private Preferences _preferences = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_preferences = await _preferenceService.GetPreferences();
|
||||
_preferences = await PreferenceService.GetPreferences();
|
||||
_paging.Country = CountryCode;
|
||||
_paging.OrderBy = _preferences.ItemSort;
|
||||
_paging.SearchColumn = _preferences.ItemSearch;
|
||||
_paging.PageSize = Convert.ToInt32(_preferences.PageSize);
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
||||
|
@ -64,7 +67,7 @@ public partial class PriceListModal : IDisposable
|
|||
|
||||
private async Task GetSalesItems()
|
||||
{
|
||||
var pagingResponse = await _itemRepo.GetSalesItemsPaged(_paging);
|
||||
var pagingResponse = await ItemRepo.GetSalesItemsPaged(_paging);
|
||||
_items = pagingResponse.Items!;
|
||||
_metaData = pagingResponse.MetaData;
|
||||
}
|
||||
|
@ -106,5 +109,5 @@ public partial class PriceListModal : IDisposable
|
|||
StateHasChanged();
|
||||
}
|
||||
|
||||
public void Dispose() => _interceptor.DisposeEvent();
|
||||
public void Dispose() => Interceptor.DisposeEvent();
|
||||
}
|
|
@ -25,8 +25,8 @@
|
|||
</div>
|
||||
<div class="modal-body">
|
||||
<VatNumberInputComponent OnValidSubmit="GetInfoFromVat"/>
|
||||
<VatCompanyNameInputComponent OnValidSubmit="GetInfoFromName"/>
|
||||
<VatAddressInputComponent Address="VatAddress" OnValidSubmit="GetInfoFromAddress"/>
|
||||
<VatEntityNameInputComponent OnValidSubmit="GetInfoFromName"/>
|
||||
@if (_vInfos.Any())
|
||||
{
|
||||
<table class="table table-sm table-striped">
|
||||
|
|
|
@ -78,7 +78,7 @@ public partial class VatLookupDkModal
|
|||
.QueryVirkRegistry(new VirkParams {EntityName = entityName});
|
||||
if (!_vInfos.Any())
|
||||
{
|
||||
_toast.ShowError($"Firma med nav '{entityName}' findes ikke.");
|
||||
_toast.ShowError($"Firma med navn '{entityName}' findes ikke.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
<PackageReference Include="Blazored.LocalStorage" Version="4.2.0" />
|
||||
<PackageReference Include="Blazored.Toast" Version="3.2.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.8" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="6.0.8" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.8" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.8" PrivateAssets="all" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.9" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="6.0.9" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.9" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.9" PrivateAssets="all" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"appInfo": {
|
||||
"name": "Wonky Client",
|
||||
"version": "0.20.20",
|
||||
"rc": false,
|
||||
"sandBox": false,
|
||||
"version": "0.22.1",
|
||||
"rc": true,
|
||||
"sandBox": true,
|
||||
"image": "grumpy-coder.png"
|
||||
},
|
||||
"apiConfig": {
|
||||
|
@ -13,9 +13,9 @@
|
|||
"serviceVirk": "api/v2/services/virk",
|
||||
"serviceBrReg": "api/v2/services/brReg",
|
||||
"serviceVies": "api/v2/services/vies",
|
||||
"Token": "token",
|
||||
"UserInfo": "api/auth/userinfo",
|
||||
"Catalog": "api/v2/catalog",
|
||||
"token": "token",
|
||||
"userInfo": "api/auth/userinfo",
|
||||
"catalog": "api/v2/catalog",
|
||||
"crmSales": "api/v2/crm/advisors/sales",
|
||||
"crmReports": "api/v2/crm/advisors/reports",
|
||||
"crmTasks": "api/v2/crm/advisors/tasks",
|
||||
|
|
|
@ -60,4 +60,9 @@ public class CatalogPagingParams
|
|||
/// Set product group filter
|
||||
/// </summary>
|
||||
public string SelectGroup { get; set; } = "";
|
||||
|
||||
/// <summary>
|
||||
/// Country code
|
||||
/// </summary>
|
||||
public string Country { get; set; } = "dk";
|
||||
}
|
|
@ -71,4 +71,6 @@ public class CompanyPagingParams
|
|||
/// </summary>
|
||||
public int HasFolded { get; set; }
|
||||
|
||||
public string Country { get; set; } = "dk";
|
||||
|
||||
}
|
Loading…
Reference in a new issue