build v0.8.22
This commit is contained in:
parent
f1deb49d0d
commit
73c2b6da7e
39 changed files with 367 additions and 233 deletions
|
@ -1,9 +0,0 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class HistoryTableComponent
|
||||
{
|
||||
[Parameter] public List<ProductHistoryView> History { get; set; }
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
@if (Products.Any())
|
||||
{
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">
|
||||
Product
|
||||
</th>
|
||||
<th scope="col">
|
||||
Varenummer
|
||||
</th>
|
||||
<th scope="col">
|
||||
Antal
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var product in Products)
|
||||
{
|
||||
<tr class="align-content-center">
|
||||
<td>
|
||||
@product.Name
|
||||
</td>
|
||||
<td>
|
||||
@product.Sku
|
||||
</td>
|
||||
<td>
|
||||
@product.Quantity
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class InventoryTableComponent
|
||||
{
|
||||
[Parameter] public List<ProductInventoryView> Products { get; set; }
|
||||
}
|
34
Wonky.Client/Components/ProductInventoryTableComponent.razor
Normal file
34
Wonky.Client/Components/ProductInventoryTableComponent.razor
Normal file
|
@ -0,0 +1,34 @@
|
|||
@if (Inventory.Any())
|
||||
{
|
||||
<div class="list-group list-group-flush">
|
||||
<div class="list-group-item">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h4>Produkt</h4>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h4>Varenr.</h4>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h4>Antal</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@foreach (var product in Inventory)
|
||||
{
|
||||
<a class="list-group-item list-group-item-action" href="/companies/@CompanyId/h/p/@product.Sku">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@product.Description
|
||||
</div>
|
||||
<div class="col">
|
||||
@product.Sku
|
||||
</div>
|
||||
<div class="col">
|
||||
@product.Quantity
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class ProductInventoryTableComponent
|
||||
{
|
||||
[Parameter] public List<ProductInventoryView> Inventory { get; set; } = new();
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
@if (History.Any())
|
||||
@if (ProductHistory.Any())
|
||||
{
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -24,7 +24,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var line in History)
|
||||
@foreach (var line in ProductHistory)
|
||||
{
|
||||
<tr class="align-content-center">
|
||||
<td>
|
||||
|
@ -34,7 +34,7 @@
|
|||
@line.Quantity
|
||||
</td>
|
||||
<td>
|
||||
@line.Name
|
||||
@line.Description
|
||||
</td>
|
||||
<td>
|
||||
@line.Sku
|
10
Wonky.Client/Components/ProductLineTableComponent.razor.cs
Normal file
10
Wonky.Client/Components/ProductLineTableComponent.razor.cs
Normal file
|
@ -0,0 +1,10 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class ProductLineTableComponent
|
||||
{
|
||||
[Parameter] public List<ProductHistoryView> ProductHistory { get; set; } = new();
|
||||
|
||||
}
|
|
@ -47,7 +47,8 @@ public class CompanyHttpRepository : ICompanyHttpRepository
|
|||
|
||||
public CompanyHttpRepository(HttpClient client,
|
||||
ILogger<CompanyHttpRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> apiConfig)
|
||||
NavigationManager navigation,
|
||||
IOptions<ApiConfig> apiConfig)
|
||||
{
|
||||
_client = client;
|
||||
_logger = logger;
|
||||
|
|
|
@ -19,54 +19,43 @@ public class HistoryHttpRepository : IHistoryHttpRepository
|
|||
private readonly NavigationManager _navigation;
|
||||
private ILogger<HistoryHttpRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _apiConfig;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public HistoryHttpRepository(HttpClient client,
|
||||
ILogger<HistoryHttpRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
NavigationManager navigation,
|
||||
IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
||||
_logger = logger;
|
||||
_navigation = navigation;
|
||||
_apiConfig = configuration.Value;
|
||||
_api = configuration.Value;
|
||||
}
|
||||
|
||||
|
||||
// public async Task<List<TaskItemView>> GetTaskList()
|
||||
// {
|
||||
// return await _client.GetFromJsonAsync<List<TaskItemView>>($"{_apiConfig.TaskItemEndpoint}");
|
||||
// }
|
||||
//
|
||||
// public async Task CreateTaskItem(TaskItemView taskItem)
|
||||
// {
|
||||
// await _client.PostAsJsonAsync($"{_apiConfig.TaskItemEndpoint}", taskItem);
|
||||
// }
|
||||
//
|
||||
// public async Task<TaskItemView> GetTaskItem(string taskItemId)
|
||||
// {
|
||||
// return await _client.GetFromJsonAsync<TaskItemView>($"{_apiConfig.TaskItemEndpoint}/{taskItemId}");
|
||||
// }
|
||||
public async Task<List<ProductInventoryView>> GetProductInventory(string companyId)
|
||||
public async Task<List<ProductInventoryView>> FetchInventory(string companyId)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<List<ProductInventoryView>>(
|
||||
$"{_apiConfig.CompanyEndpoint}/{companyId}/{_apiConfig.HistoryEndpoint}/products");
|
||||
var response = await _client.GetAsync($"{_api.CompanyEndpoint}/{companyId}/{_api.InventoryUri}");
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
return response.IsSuccessStatusCode
|
||||
? JsonSerializer.Deserialize<List<ProductInventoryView>>(content, _options)
|
||||
: new List<ProductInventoryView>();
|
||||
|
||||
}
|
||||
|
||||
public async Task<List<ProductHistoryView>> GetProductHistory(string companyId)
|
||||
public async Task<List<ProductHistoryView>> FetchHistory(string companyId)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<List<ProductHistoryView>>(
|
||||
$"{_apiConfig.CompanyEndpoint}/{companyId}/{_apiConfig.HistoryEndpoint}/products");
|
||||
$"{_api.CompanyEndpoint}/{companyId}/{_api.ProductUri}");
|
||||
|
||||
}
|
||||
|
||||
public async Task<List<ProductHistoryView>> GetProductHistory(string companyId, string sku)
|
||||
public async Task<List<ProductHistoryView>> FetchHistory(string companyId, string sku)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<List<ProductHistoryView>>(
|
||||
$"{_apiConfig.CompanyEndpoint}/{companyId}/{_apiConfig.HistoryEndpoint}/products");
|
||||
$"{_api.CompanyEndpoint}/{companyId}/{_api.ProductUri}/{sku}");
|
||||
}
|
||||
|
||||
public async Task<string> UpdateProductHistory(string companyId, string syncDate)
|
||||
public async Task<string> UpdateProductHistory(string companyId, string syncDate = "2010-01-01")
|
||||
{
|
||||
return await _client.GetStringAsync($"{_apiConfig.CompanyEndpoint}/{companyId}/{syncDate}");
|
||||
return await _client.GetStringAsync($"{_api.CompanyEndpoint}/{companyId}/{_api.UpdateUri}/{syncDate}");
|
||||
}
|
||||
}
|
|
@ -5,8 +5,8 @@ namespace Wonky.Client.HttpRepository;
|
|||
|
||||
public interface IHistoryHttpRepository
|
||||
{
|
||||
Task<List<ProductInventoryView>> GetProductInventory(string companyId);
|
||||
Task<List<ProductHistoryView>> GetProductHistory(string companyId);
|
||||
Task<List<ProductHistoryView>> GetProductHistory(string companyId, string sku);
|
||||
Task<List<ProductInventoryView>> FetchInventory(string companyId);
|
||||
Task<List<ProductHistoryView>> FetchHistory(string companyId);
|
||||
Task<List<ProductHistoryView>> FetchHistory(string companyId, string sku);
|
||||
Task<string> UpdateProductHistory(string companyId, string syncDate);
|
||||
}
|
|
@ -32,6 +32,8 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class ActivityCompanyCreate : IDisposable
|
||||
{
|
||||
[CascadingParameter] DraftStateProvider DraftStateProvider { get; set; }
|
||||
[Parameter] public string CompanyId { get; set; }
|
||||
// todo: prevent creating activity for workDate with closed report
|
||||
[Inject] private ILogger<ActivityCompanyCreate> _logger { get; set; }
|
||||
[Inject] private IToastService _toast { get; set; }
|
||||
|
@ -43,8 +45,6 @@ public partial class ActivityCompanyCreate : IDisposable
|
|||
[Inject] private UserPreferenceService _userPrefs { get; set; }
|
||||
[Inject] private IActivityHttpRepository _activityRepo { get; set; }
|
||||
[Inject] private IReportHttpRepository _reportRepo { get; set; }
|
||||
[CascadingParameter] DraftStateProvider DraftStateProvider { get; set; }
|
||||
[Parameter] public string CompanyId { get; set; }
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNameCaseInsensitive = true
|
||||
|
|
|
@ -7,8 +7,8 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class ActivityList
|
||||
{
|
||||
[Inject] public IActivityHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public IHttpClientInterceptor Interceptor { get; set; }
|
||||
[Inject] private IActivityHttpRepository _activityRepo { get; set; }
|
||||
[Inject] private IHttpClientInterceptor _interceptor { get; set; }
|
||||
|
||||
|
||||
}
|
|
@ -10,8 +10,8 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class ActivityToday
|
||||
{
|
||||
[Inject] public UserPreferenceService UserPrefs { get; set; }
|
||||
[Inject] public ILogger<Home> Logger { get; set; }
|
||||
[Inject] private UserPreferenceService _preferenceService { get; set; }
|
||||
[Inject] private ILogger<Home> _logger { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] private NavigationManager _navigator { get; set; }
|
||||
[Inject] private IActivityHttpRepository _activityRepo { get; set; }
|
||||
|
@ -24,7 +24,7 @@ public partial class ActivityToday
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_prefs = await UserPrefs.GetPreferences();
|
||||
_prefs = await _preferenceService.GetPreferences();
|
||||
if(!string.IsNullOrWhiteSpace(_prefs.WorkDate))
|
||||
_workDate = _prefs.WorkDate;
|
||||
|
||||
|
|
|
@ -37,13 +37,13 @@ namespace Wonky.Client.Pages
|
|||
{
|
||||
public partial class CompanyCreate : IDisposable
|
||||
{
|
||||
[Inject] public IToastService ToastService { get; set; }
|
||||
[Inject] public ILogger<CompanyCreate> Logger { get; set; }
|
||||
[Inject] public ILocalStorageService StorageService { get; set; }
|
||||
[Inject] public NavigationManager Navigation { get; set; }
|
||||
[Inject] public ICompanyHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public VatInfoLookupService VatInfoLookupService { get; set; }
|
||||
[Inject] private IToastService _toast { get; set; }
|
||||
[Inject] private ILogger<CompanyCreate> _logger { get; set; }
|
||||
[Inject] private ILocalStorageService _storage { get; set; }
|
||||
[Inject] private NavigationManager _navigator { get; set; }
|
||||
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] private VatInfoLookupService _vatService { get; set; }
|
||||
private EditContext _editContext { get; set; }
|
||||
private CompanyDto _companyObject { get; set; } = new();
|
||||
private VirkRegInfo _virkRegInfo { get; set; } = new();
|
||||
|
@ -63,7 +63,7 @@ namespace Wonky.Client.Pages
|
|||
_editContext.OnFieldChanged += HandleFieldChanged;
|
||||
_editContext.OnValidationStateChanged += ValidationChanged;
|
||||
|
||||
var ux = await StorageService.GetItemAsync<UserInfoView>("_xu");
|
||||
var ux = await _storage.GetItemAsync<UserInfoView>("_xu");
|
||||
_dk = ux.CountryCode.ToLower() == "dk";
|
||||
|
||||
_companyObject.SalesRepId = ux.Id;
|
||||
|
@ -75,16 +75,16 @@ namespace Wonky.Client.Pages
|
|||
_companyObject.LastVisit = $"{_lastVisit:yyyy-MM-dd}";
|
||||
_companyObject.LastVisit = $"{_nextVisit:yyyy-MM-dd}";
|
||||
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
}
|
||||
|
||||
private async Task GetInfoFromAddress(VatAddress address)
|
||||
{
|
||||
_showInfos = true;
|
||||
ToastService.ShowInfo("Vent for adresse info ...");
|
||||
_vInfos = await VatInfoLookupService.QueryVirkRegistry(
|
||||
_toast.ShowInfo("Vent for adresse info ...");
|
||||
_vInfos = await _vatService.QueryVirkRegistry(
|
||||
new VirkParams
|
||||
{
|
||||
StreetName = address.StreetName,
|
||||
|
@ -93,18 +93,18 @@ namespace Wonky.Client.Pages
|
|||
});
|
||||
if (!_vInfos.Any())
|
||||
{
|
||||
ToastService.ShowWarning($"Ingen data fundet ...");
|
||||
_toast.ShowWarning($"Ingen data fundet ...");
|
||||
}
|
||||
}
|
||||
private async Task GetInfoFromVat(string vatNumber)
|
||||
{
|
||||
_showInfos = true;
|
||||
ToastService.ShowInfo("Vent for firma info ...");
|
||||
_vInfos = await VatInfoLookupService
|
||||
_toast.ShowInfo("Vent for firma info ...");
|
||||
_vInfos = await _vatService
|
||||
.QueryVirkRegistry(new VirkParams {VatNumber = vatNumber});
|
||||
if (!_vInfos.Any())
|
||||
{
|
||||
ToastService.ShowError($"Firma med CVR '{vatNumber}' findes ikke.");
|
||||
_toast.ShowError($"Firma med CVR '{vatNumber}' findes ikke.");
|
||||
}
|
||||
}
|
||||
private void SelectCompany(string vatNumber)
|
||||
|
@ -123,16 +123,16 @@ namespace Wonky.Client.Pages
|
|||
}
|
||||
private async Task SubmitCompanyForm()
|
||||
{
|
||||
var newId = await CompanyRepo.CreateCompany(_companyObject);
|
||||
var newId = await _companyRepo.CreateCompany(_companyObject);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(newId))
|
||||
{
|
||||
ToastService.ShowSuccess($"'{_companyObject.Name}' er oprettet i CRM.");
|
||||
Navigation.NavigateTo($"/companies/{newId}");
|
||||
_toast.ShowSuccess($"'{_companyObject.Name}' er oprettet i CRM.");
|
||||
_navigator.NavigateTo($"/companies/{newId}");
|
||||
}
|
||||
else
|
||||
{
|
||||
ToastService.ShowWarning($"'{_companyObject.Name}' IKKE oprettet.");
|
||||
_toast.ShowWarning($"'{_companyObject.Name}' IKKE oprettet.");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -168,7 +168,7 @@ namespace Wonky.Client.Pages
|
|||
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
_interceptor.DisposeEvent();
|
||||
_editContext.OnFieldChanged -= HandleFieldChanged;
|
||||
_editContext.OnValidationStateChanged -= ValidationChanged;
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-md-6">
|
||||
<PaginationComponent MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></PaginationComponent>
|
||||
<PaginationComponent MetaData="_metaData" Spread="2" SelectedPage="SelectedPage"></PaginationComponent>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
</div>
|
||||
|
@ -48,4 +48,4 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<CompanyTableComponent Companies="Companies" OnDelete="DeleteCompany"></CompanyTableComponent>
|
||||
<CompanyTableComponent Companies="_companyList" OnDelete="DeleteCompany"></CompanyTableComponent>
|
|
@ -28,12 +28,12 @@ namespace Wonky.Client.Pages
|
|||
{
|
||||
public partial class CompanyList : IDisposable
|
||||
{
|
||||
[Inject] public ILocalStorageService LocalStorage { get; set; }
|
||||
[Inject] private UserPreferenceService UserPrefService { get; set; }
|
||||
[Inject] public ICompanyHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
public List<CompanyDto>? Companies { get; set; } = new();
|
||||
public MetaData? MetaData { get; set; } = new();
|
||||
[Inject] private ILocalStorageService _storage { get; set; }
|
||||
[Inject] private UserPreferenceService _preferenceService { get; set; }
|
||||
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
private List<CompanyDto> _companyList { get; set; } = new();
|
||||
private MetaData _metaData { get; set; } = new();
|
||||
private CompanyPagingParams _paging = new();
|
||||
private Preferences _preferences { get; set; } = new();
|
||||
private string _savedSearch { get; set; } = "";
|
||||
|
@ -41,7 +41,7 @@ namespace Wonky.Client.Pages
|
|||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
// set preferences
|
||||
_preferences = await UserPrefService.GetPreferences();
|
||||
_preferences = await _preferenceService.GetPreferences();
|
||||
_paging.OrderBy = _preferences.CompanySort;
|
||||
_paging.SearchColumn = _preferences.CompanySearch;
|
||||
_paging.PageSize = Convert.ToInt32(_preferences.PageSize);
|
||||
|
@ -52,29 +52,29 @@ namespace Wonky.Client.Pages
|
|||
if(!string.IsNullOrWhiteSpace(_savedSearch))
|
||||
_paging.SearchTerm = _savedSearch;
|
||||
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
// get companies
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task SelectedPage(int page)
|
||||
{
|
||||
Companies = new List<CompanyDto>();
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = page;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task SetSearchCol(string searchColumn)
|
||||
{
|
||||
Companies = new List<CompanyDto>();
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.SearchColumn = searchColumn;
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
}
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
Companies = new List<CompanyDto>();
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageSize = Convert.ToInt32(pageSize);
|
||||
_paging.PageNumber = 1;
|
||||
await GetCompanies();
|
||||
|
@ -83,9 +83,9 @@ namespace Wonky.Client.Pages
|
|||
private async Task SetSearchPhrase(string searchTerm)
|
||||
{
|
||||
if(string.IsNullOrWhiteSpace(searchTerm))
|
||||
await UserPrefService.SetCompanyFilterPhrase("");
|
||||
await _preferenceService.SetCompanyFilterPhrase("");
|
||||
|
||||
Companies = new List<CompanyDto>();
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SearchTerm = searchTerm;
|
||||
await GetCompanies();
|
||||
|
@ -93,28 +93,28 @@ namespace Wonky.Client.Pages
|
|||
|
||||
private async Task SetSortCol(string orderBy)
|
||||
{
|
||||
Companies = new List<CompanyDto>();
|
||||
_companyList = new List<CompanyDto>();
|
||||
_paging.OrderBy = orderBy;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task DeleteCompany(string companyId)
|
||||
{
|
||||
Companies = new List<CompanyDto>();
|
||||
await CompanyRepo.DeleteCompany(companyId);
|
||||
if (_paging.PageNumber > 1 && Companies.Count == 1)
|
||||
_companyList = new List<CompanyDto>();
|
||||
await _companyRepo.DeleteCompany(companyId);
|
||||
if (_paging.PageNumber > 1 && _companyList.Count == 1)
|
||||
_paging.PageNumber--;
|
||||
await GetCompanies();
|
||||
}
|
||||
|
||||
private async Task GetCompanies()
|
||||
{
|
||||
var pagingResponse = await CompanyRepo.GetCompaniesPaged(_paging);
|
||||
Companies = pagingResponse.Items;
|
||||
MetaData = pagingResponse.MetaData;
|
||||
var pagingResponse = await _companyRepo.GetCompaniesPaged(_paging);
|
||||
_companyList = pagingResponse.Items;
|
||||
_metaData = pagingResponse.MetaData;
|
||||
}
|
||||
|
||||
public void Dispose() => Interceptor.DisposeEvent();
|
||||
public void Dispose() => _interceptor.DisposeEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -183,10 +183,10 @@
|
|||
<ValidationMessage For="@(() => _company.Interval)"></ValidationMessage>
|
||||
</td>
|
||||
<th scope="row">
|
||||
|
||||
Historik
|
||||
</th>
|
||||
<td>
|
||||
|
||||
<button class="btn btn-warning" type="button" @onclick="@RefreshHistory">@_company.HistorySync</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -201,10 +201,10 @@
|
|||
<a class="btn btn-primary" href="/companies">Til Oversigt</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-success" href="/companies/@_company.CompanyId/products">Produktkøb</a>
|
||||
<a class="btn btn-success" href="/companies/@_company.CompanyId/h/i">Produktkøb</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-success" href="/companies/@_company.CompanyId/history">Varelinjer</a>
|
||||
<a class="btn btn-success" href="/companies/@_company.CompanyId/h/p">Varelinjer</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<ActivityButton CompanyId="@_company.CompanyId" Enabled="@_company.ValidVat"></ActivityButton>
|
||||
|
|
|
@ -22,6 +22,7 @@ using Wonky.Client.HttpInterceptors;
|
|||
using Wonky.Client.HttpRepository;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.Components.Forms;
|
||||
using Microsoft.AspNetCore.DataProtection.Repositories;
|
||||
using Wonky.Client.Helpers;
|
||||
using Wonky.Client.Models;
|
||||
using Wonky.Client.Services;
|
||||
|
@ -34,14 +35,15 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class CompanyView : IDisposable
|
||||
{
|
||||
[Inject] public IToastService ToastService { get; set; }
|
||||
[Inject] public ILogger<CompanyView> Logger { get; set; }
|
||||
[Inject] public NavigationManager Navigation { get; set; }
|
||||
[Inject] public ICompanyHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public VatInfoLookupService VatInfoLookupService { get; set; }
|
||||
[Inject] public ILocalStorageService StorageService { get; set; }
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] private IToastService _toast { get; set; }
|
||||
[Inject] private ILogger<CompanyView> _loger { get; set; }
|
||||
[Inject] private NavigationManager _navigator { get; set; }
|
||||
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
|
||||
[Inject] private IHistoryHttpRepository _historyRepo { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] private VatInfoLookupService _vatService { get; set; }
|
||||
[Inject] private ILocalStorageService _storage { get; set; }
|
||||
private CompanyDto _company { get; set; } = new();
|
||||
private EditContext _editContext { get; set; }
|
||||
private List<VirkRegInfo> _vInfos { get; set; } = new();
|
||||
|
@ -62,14 +64,20 @@ public partial class CompanyView : IDisposable
|
|||
PropertyNameCaseInsensitive = true
|
||||
};
|
||||
|
||||
private async Task RefreshHistory()
|
||||
{
|
||||
_toast.ShowInfo("Vent mens data opdateres ...");
|
||||
var ts = await _historyRepo.UpdateProductHistory(_company.CompanyId, $"{DateTime.Parse(_company.HistorySync):yyyy-MM-dd}");;
|
||||
_company.HistorySync = ts.Replace("\"", "");
|
||||
}
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var ux = await StorageService.GetItemAsync<UserInfoView>("_xu");
|
||||
var ux = await _storage.GetItemAsync<UserInfoView>("_xu");
|
||||
countryCode = ux.CountryCode;
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
_company = await CompanyRepo.GetCompanyById(CompanyId);
|
||||
_company = await _companyRepo.GetCompanyById(CompanyId);
|
||||
_orgVat = _company.VatNumber;
|
||||
_company.CountryCode = ux.CountryCode.ToLower();
|
||||
|
||||
|
@ -137,7 +145,7 @@ public partial class CompanyView : IDisposable
|
|||
{
|
||||
if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber))
|
||||
{
|
||||
ToastService.ShowError($"CVR/VAT/ORG nummer er ugyldig.");
|
||||
_toast.ShowError($"CVR/VAT/ORG nummer er ugyldig.");
|
||||
StateHasChanged();
|
||||
return;
|
||||
}
|
||||
|
@ -148,18 +156,18 @@ public partial class CompanyView : IDisposable
|
|||
_company.UpdateErpVat = 1;
|
||||
|
||||
var x = JsonSerializer.Serialize(_company, _options);
|
||||
Logger.LogInformation(x);
|
||||
var success = await CompanyRepo.UpdateCompany(CompanyId, _company );
|
||||
_loger.LogInformation(x);
|
||||
var success = await _companyRepo.UpdateCompany(CompanyId, _company );
|
||||
if (success)
|
||||
{
|
||||
ToastService.ShowSuccess("Check");
|
||||
Navigation.NavigateTo($"/companies/{CompanyId}");
|
||||
_toast.ShowSuccess("Check");
|
||||
_navigator.NavigateTo($"/companies/{CompanyId}");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task GetInfoFromAddress(VatAddress address)
|
||||
{
|
||||
_vInfos = await VatInfoLookupService.QueryVirkRegistry(
|
||||
_vInfos = await _vatService.QueryVirkRegistry(
|
||||
new VirkParams
|
||||
{
|
||||
StreetName = address.StreetName,
|
||||
|
@ -168,7 +176,7 @@ public partial class CompanyView : IDisposable
|
|||
});
|
||||
if (!_vInfos.Any())
|
||||
{
|
||||
ToastService.ShowError($"Ingen virksomheder fundet.");
|
||||
_toast.ShowError($"Ingen virksomheder fundet.");
|
||||
}
|
||||
}
|
||||
private void SelectCompany(string vatNumber, bool syncAll)
|
||||
|
@ -194,7 +202,7 @@ public partial class CompanyView : IDisposable
|
|||
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
_interceptor.DisposeEvent();
|
||||
_editContext.OnFieldChanged -= HandleFieldChanged;
|
||||
_editContext.OnValidationStateChanged -= ValidationChanged;
|
||||
}
|
||||
|
|
|
@ -40,11 +40,11 @@
|
|||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<PaginationComponent MetaData="MetaData" Spread="2" SelectedPage="SelectedPage"></PaginationComponent>
|
||||
<PaginationComponent MetaData="_metaDate" Spread="2" SelectedPage="SelectedPage"></PaginationComponent>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<ItemTableComponent SalesItems="SalesItems"></ItemTableComponent>
|
||||
<ItemTableComponent SalesItems="_items"></ItemTableComponent>
|
||||
</div>
|
||||
</div>
|
|
@ -30,44 +30,44 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class ItemCatalog : IDisposable
|
||||
{
|
||||
[Inject] public ILocalStorageService LocalStorage { get; set; }
|
||||
[Inject] public ISalesItemHttpRepository SalesItemRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] private UserPreferenceService UserPreferenceService { get; set; }
|
||||
private List<NgSalesItemView> SalesItems { get; set; } = new();
|
||||
private MetaData? MetaData { get; set; } = new();
|
||||
[Inject] private ILocalStorageService _storage { get; set; }
|
||||
[Inject] private ISalesItemHttpRepository _itemRepo { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] private UserPreferenceService _preferenceService { get; set; }
|
||||
private List<NgSalesItemView> _items { get; set; } = new();
|
||||
private MetaData? _metaDate { get; set; } = new();
|
||||
private CatalogPagingParams _paging = new();
|
||||
private Preferences _preferences = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_preferences = await UserPreferenceService.GetPreferences();
|
||||
_preferences = await _preferenceService.GetPreferences();
|
||||
_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 SelectedPage(int page)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_items = new List<NgSalesItemView>();
|
||||
_paging.PageNumber = page;
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
||||
private async Task GetSalesItems()
|
||||
{
|
||||
var pagingResponse = await SalesItemRepo.GetSalesItemsPaged(_paging);
|
||||
SalesItems = pagingResponse.Items!;
|
||||
MetaData = pagingResponse.MetaData;
|
||||
var pagingResponse = await _itemRepo.GetSalesItemsPaged(_paging);
|
||||
_items = pagingResponse.Items!;
|
||||
_metaDate = pagingResponse.MetaData;
|
||||
}
|
||||
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_items = new List<NgSalesItemView>();
|
||||
_paging.PageSize = Convert.ToInt32(pageSize);
|
||||
_paging.PageNumber = 1;
|
||||
await GetSalesItems();
|
||||
|
@ -75,21 +75,21 @@ public partial class ItemCatalog : IDisposable
|
|||
|
||||
private async Task SetItemGroup(string groupFilter)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_items = new List<NgSalesItemView>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SelectGroup = groupFilter;
|
||||
await GetSalesItems();
|
||||
}
|
||||
private async Task SetSearchCol(string columnName)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_items = new List<NgSalesItemView>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SearchColumn = columnName;
|
||||
await GetSalesItems();
|
||||
}
|
||||
private async Task SetSearchPhrase(string searchTerm)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_items = new List<NgSalesItemView>();
|
||||
_paging.PageNumber = 1;
|
||||
_paging.SearchTerm = searchTerm;
|
||||
await GetSalesItems();
|
||||
|
@ -97,11 +97,11 @@ public partial class ItemCatalog : IDisposable
|
|||
|
||||
private async Task SetSortCol(string orderBy)
|
||||
{
|
||||
SalesItems = new List<NgSalesItemView>();
|
||||
_items = new List<NgSalesItemView>();
|
||||
_paging.OrderBy = orderBy;
|
||||
await GetSalesItems();
|
||||
}
|
||||
|
||||
public void Dispose() => Interceptor.DisposeEvent();
|
||||
public void Dispose() => _interceptor.DisposeEvent();
|
||||
|
||||
}
|
|
@ -22,26 +22,26 @@
|
|||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h1>@Item.Name</h1>
|
||||
<h1>@_item.Name</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-striped table-bordered">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">Navn</th>
|
||||
<td>@Item.Name</td>
|
||||
<td>@_item.Name</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Varenr</th>
|
||||
<td>@Item.Sku</td>
|
||||
<td>@_item.Sku</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"></th>
|
||||
<td>@Item.ProductGroup</td>
|
||||
<td>@_item.ProductGroup</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Kort Navn</th>
|
||||
<td>@Item.ShortName</td>
|
||||
<td>@_item.ShortName</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -52,7 +52,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var rate in Item.Rates)
|
||||
@foreach (var rate in _item.Rates)
|
||||
{
|
||||
<tr>
|
||||
<th scope="row">@rate.Quantity</th>
|
||||
|
|
|
@ -25,22 +25,17 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class ItemView : IDisposable
|
||||
{
|
||||
private NgSalesItemView Item { get; set; } = new ();
|
||||
[Parameter] public string SalesItemId { get; set; } = "";
|
||||
private NgSalesItemView _item { get; set; } = new ();
|
||||
[Inject] private ISalesItemHttpRepository _itemRepo { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
|
||||
[Inject]
|
||||
public ISalesItemHttpRepository SalesItemRepo { get; set; }
|
||||
|
||||
[Inject]
|
||||
public HttpInterceptorService Interceptor { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public string SalesItemId { get; set; } = "";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
Item = await SalesItemRepo.GetSalesItem(SalesItemId);
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
_item = await _itemRepo.GetSalesItem(SalesItemId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -48,6 +43,6 @@ public partial class ItemView : IDisposable
|
|||
/// </summary>
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor!.DisposeEvent();
|
||||
_interceptor!.DisposeEvent();
|
||||
}
|
||||
}
|
11
Wonky.Client/Pages/ProductHistoryItem.razor
Normal file
11
Wonky.Client/Pages/ProductHistoryItem.razor
Normal file
|
@ -0,0 +1,11 @@
|
|||
@using Wonky.Client.Components
|
||||
@page "/companies/{CompanyId}/h/p/{Sku}"
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>@_company.Name</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ProductLineTableComponent ProductHistory="_lines"></ProductLineTableComponent>
|
||||
</div>
|
||||
</div>
|
30
Wonky.Client/Pages/ProductHistoryItem.razor.cs
Normal file
30
Wonky.Client/Pages/ProductHistoryItem.razor.cs
Normal file
|
@ -0,0 +1,30 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ProductHistoryItem : IDisposable
|
||||
{
|
||||
[Parameter] public string Sku { get; set; } = "";
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] private IHistoryHttpRepository _historyRepo { get; set; }
|
||||
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
|
||||
private List<ProductHistoryView> _lines { get; set; } = new();
|
||||
private CompanyDto _company { get; set; } = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
_company = await _companyRepo.GetCompanyById(CompanyId);
|
||||
_lines = await _historyRepo.FetchHistory(CompanyId, Sku);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_interceptor.DisposeEvent();
|
||||
}
|
||||
}
|
11
Wonky.Client/Pages/ProductHistoryList.razor
Normal file
11
Wonky.Client/Pages/ProductHistoryList.razor
Normal file
|
@ -0,0 +1,11 @@
|
|||
@using Wonky.Client.Components
|
||||
@page "/companies/{CompanyId}/h/p"
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>@_company.Name</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ProductLineTableComponent ProductHistory="_lines"></ProductLineTableComponent>
|
||||
</div>
|
||||
</div>
|
29
Wonky.Client/Pages/ProductHistoryList.razor.cs
Normal file
29
Wonky.Client/Pages/ProductHistoryList.razor.cs
Normal file
|
@ -0,0 +1,29 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ProductHistoryList : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] private IHistoryHttpRepository _historyRepo { get; set; }
|
||||
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
|
||||
private List<ProductHistoryView> _lines { get; set; } = new();
|
||||
private CompanyDto _company { get; set; } = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
_company = await _companyRepo.GetCompanyById(CompanyId);
|
||||
_lines = await _historyRepo.FetchHistory(CompanyId);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_interceptor.DisposeEvent();
|
||||
}
|
||||
}
|
|
@ -1 +1,13 @@
|
|||
@page "/companies/{CompanyId}/products"
|
||||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@page "/companies/{CompanyId}/h/i"
|
||||
@attribute [Authorize(Roles = "Adviser")]
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>@_company.Name</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<ProductInventoryTableComponent CompanyId="@CompanyId" Inventory="_inventory"></ProductInventoryTableComponent>
|
||||
</div>
|
||||
</div>
|
|
@ -1,6 +1,32 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Wonky.Entity.DTO;
|
||||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ProductInventory
|
||||
public partial class ProductInventory : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
|
||||
[Inject] private IHistoryHttpRepository _historyRepo { get; set; }
|
||||
[Inject] private ICompanyHttpRepository _companyRepo { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
private CompanyDto _company { get; set; } = new();
|
||||
private List<ProductInventoryView> _inventory { get; set; } = new();
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Console.WriteLine($"CompanyId => {CompanyId}");
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
_company = await _companyRepo.GetCompanyById(CompanyId);
|
||||
_inventory = await _historyRepo.FetchInventory(CompanyId);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_interceptor.DisposeEvent();
|
||||
}
|
||||
}
|
|
@ -30,11 +30,11 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class ReportCreate : IDisposable
|
||||
{
|
||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] private UserPreferenceService UserPrefs { get; set; }
|
||||
[Inject] private IActivityHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] private IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] private NavigationManager Navigator { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] private UserPreferenceService _userPrefs { get; set; }
|
||||
[Inject] private IActivityHttpRepository _activityRepo { get; set; }
|
||||
[Inject] private IReportHttpRepository _reportRepo { get; set; }
|
||||
[Inject] private NavigationManager _navigator { get; set; }
|
||||
[Inject] private ILogger<ReportCreate> _logger { get; set; }
|
||||
[Inject] private IToastService _toast { get; set; }
|
||||
private EditContext _editContext { get; set; }
|
||||
|
@ -53,13 +53,13 @@ public partial class ReportCreate : IDisposable
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
_editContext = new EditContext(_report);
|
||||
_editContext.OnFieldChanged += HandleFieldChanged;
|
||||
_editContext.OnValidationStateChanged += ValidationChanged;
|
||||
|
||||
_prefs = await UserPrefs.GetPreferences();
|
||||
_prefs = await _userPrefs.GetPreferences();
|
||||
if (!string.IsNullOrWhiteSpace(_prefs.WorkDate))
|
||||
_workDate = DateTime.Parse(_prefs.WorkDate);
|
||||
_leaveBegin = _workDate;
|
||||
|
@ -116,10 +116,10 @@ public partial class ReportCreate : IDisposable
|
|||
|
||||
_working = true;
|
||||
|
||||
var result = await ReportRepo.PostReport($"{_workDate:yyyy-MM-dd}", _report);
|
||||
var result = await _reportRepo.PostReport($"{_workDate:yyyy-MM-dd}", _report);
|
||||
|
||||
_toast.ShowInfo($"Rapport oprettet {_workDate}");
|
||||
Navigator.NavigateTo("/home");
|
||||
_navigator.NavigateTo("/home");
|
||||
}
|
||||
|
||||
private void OnTimeChanged()
|
||||
|
@ -150,9 +150,9 @@ public partial class ReportCreate : IDisposable
|
|||
private async Task GetKeyFigures()
|
||||
{
|
||||
_working = true;
|
||||
var data = await ReportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}");
|
||||
var data = await _reportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}");
|
||||
if(data.Closed)
|
||||
Navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}");
|
||||
_navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}");
|
||||
_noFigures = false;
|
||||
_report.Figures = data.Figures;
|
||||
_init = data.Figures;
|
||||
|
@ -162,7 +162,7 @@ public partial class ReportCreate : IDisposable
|
|||
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
_interceptor.DisposeEvent();
|
||||
_editContext.OnFieldChanged -= HandleFieldChanged;
|
||||
_editContext.OnValidationStateChanged -= ValidationChanged;
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class ReportView
|
||||
{
|
||||
[Inject] private IReportHttpRepository ReportRepo { get; set; }
|
||||
[Parameter] public string ReportDate { get; set; }
|
||||
[Inject] private IReportHttpRepository _reportRepo { get; set; }
|
||||
private NgSalesReportView _report { get; set; } = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
|
@ -22,6 +22,6 @@ public partial class ReportView
|
|||
private async Task GetReport(string workDate)
|
||||
{
|
||||
_report = new NgSalesReportView();
|
||||
_report = await ReportRepo.GetReport(workDate);
|
||||
_report = await _reportRepo.GetReport(workDate);
|
||||
}
|
||||
}
|
|
@ -8,21 +8,21 @@ namespace Wonky.Client.Pages;
|
|||
|
||||
public partial class SalesReportList : IDisposable
|
||||
{
|
||||
[Inject] public IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] private IReportHttpRepository _reportRepo { get; set; }
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
|
||||
private List<NgSalesReportListView> _reports { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
_reports = await ReportRepo.GetReports();
|
||||
_reports = await _reportRepo.GetReports();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
_interceptor.DisposeEvent();
|
||||
}
|
||||
}
|
|
@ -8,7 +8,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class TaskItemList
|
||||
public partial class TaskItemList : IDisposable
|
||||
{
|
||||
[Inject] public UserPreferenceService UserPrefs { get; set; }
|
||||
[Inject] public ILogger<Home> Logger { get; set; }
|
||||
|
@ -36,5 +36,9 @@ public partial class TaskItemList
|
|||
_toast.ShowInfo("Vent nogle sekunder for data");
|
||||
_workDate = workDate;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_interceptor.DisposeEvent();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,9 +1,11 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class TaskItemView
|
||||
public partial class TaskItemView : IDisposable
|
||||
{
|
||||
[Inject] private HttpInterceptorService _interceptor { get; set; }
|
||||
[Parameter] public string TaskItemId { get; set; }
|
||||
|
||||
|
||||
|
@ -11,4 +13,10 @@ public partial class TaskItemView
|
|||
{
|
||||
return base.OnParametersSetAsync();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_interceptor.DisposeEvent();
|
||||
}
|
||||
|
||||
}
|
|
@ -53,6 +53,7 @@ builder.Services.AddScoped<ISalesItemHttpRepository, SalesItemHttpRepository>();
|
|||
builder.Services.AddScoped<IActivityHttpRepository, ActivityHttpRepository>();
|
||||
builder.Services.AddScoped<IReportHttpRepository, ReportHttpRepository>();
|
||||
builder.Services.AddScoped<ITaskItemHttpRepository, TaskItemHttpRepository>();
|
||||
builder.Services.AddScoped<IHistoryHttpRepository, HistoryHttpRepository>();
|
||||
|
||||
builder.Services.AddScoped<HttpInterceptorService>();
|
||||
builder.Services.AddBlazoredLocalStorage();
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
},
|
||||
"appInfo": {
|
||||
"name": "Wonky Client",
|
||||
"version": "0.8.21",
|
||||
"version": "0.8.22",
|
||||
"isBeta": true,
|
||||
"image": "grumpy-coder.png"
|
||||
},
|
||||
|
@ -36,6 +36,8 @@
|
|||
"activityEndpoint": "api/v2/crm/salesReps/sales",
|
||||
"reportEndpoint": "api/v2/crm/salesReps/reports",
|
||||
"taskItemEndpoint": "api/v2/crm/salesRps/tasks",
|
||||
"historyEndpoint": "products"
|
||||
"inventoryUri": "h/i",
|
||||
"productUri": "h/p",
|
||||
"updateUri": "h/u"
|
||||
}
|
||||
}
|
|
@ -33,5 +33,7 @@ public class ApiConfig
|
|||
public string ActivityEndpoint { get; set; } = "";
|
||||
public string ReportEndpoint { get; set; } = "";
|
||||
public string TaskItemEndpoint { get; set; } = "";
|
||||
public string HistoryEndpoint { get; set; } = "";
|
||||
public string InventoryUri { get; set; } = "";
|
||||
public string ProductUri { get; set; } = "";
|
||||
public string UpdateUri { get; set; } = "";
|
||||
}
|
|
@ -78,6 +78,7 @@ public class CompanyDto
|
|||
public int ValidVat { get; set; }
|
||||
|
||||
public int UpdateErpVat { get; set; }
|
||||
public string HistorySync { get; set; }
|
||||
|
||||
public virtual bool ValidDateSpan()
|
||||
{
|
||||
|
|
|
@ -3,7 +3,7 @@ namespace Wonky.Entity.DTO;
|
|||
public class ProductHistoryView
|
||||
{
|
||||
public string DeliverDate { get; set; } = "";
|
||||
public string Name { get; set; } = "";
|
||||
public string Description { get; set; } = "";
|
||||
public string Sku { get; set; } = "";
|
||||
public int Quantity { get; set; }
|
||||
public decimal Price { get; set; }
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Wonky.Entity.DTO;
|
||||
|
||||
public class ProductInventoryView
|
||||
{
|
||||
public string Name { get; set; } = "";
|
||||
public string Description { get; set; } = "";
|
||||
public string Sku { get; set; } = "";
|
||||
public int Quantity { get; set; }
|
||||
}
|
Loading…
Reference in a new issue