This commit is contained in:
Frede Hundewadt 2022-03-17 16:35:33 +01:00
parent b3cd44431e
commit afe2dd024e
14 changed files with 248 additions and 84 deletions

View file

@ -15,12 +15,9 @@
//
*@
<select class="form-control" @bind-value="GroupFilter" @bind-value:event="oninput" @onchange="OnGroupFilterChange">
<option value="all" selected>Alle</option>
<option value="1">Lim / Sealer / Rep</option>
<option value="2">Maling / Primer</option>
<option value="3">Smøremidler</option>
<option value="4">Polish / Cleaner</option>
<option value="5">Tape</option>
<option value="6">Diverse</option>
<select class="form-control" @bind-value="Selection" @bind-value:event="oninput" @onchange="OnSelectionChanged">
@foreach (var (key, value) in Items)
{
<option value="@key">@value</option>
}
</select>

View file

@ -14,18 +14,40 @@
//
using System.Text.RegularExpressions;
using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components;
using Wonky.Client.Services;
namespace Wonky.Client.Components;
public partial class ItemGroupFilter
{
[Parameter] public EventCallback<string> OnGroupFilterChanged { get; set; }
private string GroupFilter { get; set; } = "all";
private async Task OnGroupFilterChange(ChangeEventArgs eventArgs)
[Inject] private ILocalStorageService LocalStorage { get; set; }
[Inject] private ProfileService ProfileService { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();
private string Selection { get; set; } = "all";
protected override async Task OnInitializedAsync()
{
if (GroupFilter == "all")
GroupFilter = "";
await OnGroupFilterChanged.InvokeAsync(GroupFilter);
}
ProfileService.OnChange += ProfileServiceOnOnChange;
_preferences = await ProfileService.GetPreferences();
Items.Add("name", "Varenavn");
Items.Add("sku", "Varenr");
Selection = (from x in Items where x.Key == _preferences.ItemGroup select x.Value).First();
}
private async Task OnColumnChanged(ChangeEventArgs args)
{
await ProfileService.SetItemSort(args.Value.ToString());
}
private void ProfileServiceOnOnChange(Preferences newPreferences)
{
_preferences = newPreferences;
StateHasChanged();
}
public void Dispose()
{
ProfileService.OnChange -= ProfileServiceOnOnChange;
}
}

View file

@ -15,7 +15,7 @@
//
*@
<select id="search-column" class="form-control" @bind-value="@SearchColumn" @bind-value:event="oninput" @onchange="OnSearchColumnChange">
<select id="search-column" class="form-control" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectChanged">
@foreach (var (key, value) in Items)
{
<option value="@key">@value</option>

View file

@ -15,22 +15,37 @@
using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components;
using Wonky.Client.Services;
namespace Wonky.Client.Components;
public partial class ItemSearchColumn
{
[Parameter] public EventCallback<string> OnColumnChanged { get; set; }
private string SearchColumn { get; set; } = "name";
[Inject] private ILocalStorageService LocalStorage { get; set; }
[Inject] private ProfileService ProfileService { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
protected override void OnInitialized()
private Preferences _preferences = new();
private string Selection { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileServiceOnOnChange;
_preferences = await ProfileService.GetPreferences();
Items.Add("name", "Varenavn");
Items.Add("sku", "Varenr");
Items.Add("shortName", "Forkortelse");
Selection = (from x in Items where x.Key == _preferences.ItemSearch select x.Value).First();
}
private async Task OnSearchColumnChange(ChangeEventArgs eventArgs)
private async Task OnSelectChanged(ChangeEventArgs e)
{
await OnColumnChanged.InvokeAsync(SearchColumn);
await ProfileService.SetItemSort(e.Value.ToString());
}
private void ProfileServiceOnOnChange(Preferences newPreferences)
{
_preferences = newPreferences;
StateHasChanged();
}
public void Dispose()
{
ProfileService.OnChange -= ProfileServiceOnOnChange;
}
}

View file

@ -15,7 +15,7 @@
//
*@
<select class="form-control" @bind-value="@SortColumn" @bind-value:event="oninput" @onchange="OnSortColumnChange">
<select class="form-control" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectChanged">
@foreach (var (key, value) in Items)
{
<option value="@key">@value</option>

View file

@ -15,24 +15,36 @@
using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components;
using Wonky.Client.Services;
namespace Wonky.Client.Components;
public partial class ItemSortColumn
public partial class ItemSortColumn : IDisposable
{
[Parameter] public EventCallback<string> OnColumnChanged { get; set; }
private string SortColumn { get; set; } = "name";
[Inject] private ILocalStorageService LocalStorage { get; set; }
[Inject] private ProfileService ProfileService { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
protected override void OnInitialized()
private Preferences _preferences = new();
private string Selection { get; set; } = "name";
protected override async Task OnInitializedAsync()
{
ProfileService.OnChange += ProfileServiceOnOnChange;
_preferences = await ProfileService.GetPreferences();
Items.Add("name", "Varenavn");
Items.Add("sku", "Varenr");
Selection = (from x in Items where x.Key == _preferences.ItemSort select x.Value).First();
}
private async Task OnSortColumnChange(ChangeEventArgs eventArgs)
private async Task OnSelectChanged(ChangeEventArgs e)
{
await OnColumnChanged.InvokeAsync(SortColumn);
await ProfileService.SetItemSort(e.Value.ToString());
}
private void ProfileServiceOnOnChange(Preferences newPreferences)
{
_preferences = newPreferences;
StateHasChanged();
}
public void Dispose()
{
ProfileService.OnChange -= ProfileServiceOnOnChange;
}
}

View file

@ -15,12 +15,11 @@
//
*@
<div class="form-group">
<select class="form-control" @bind-value="@PageSize" @bind-value:event="oninput" @onchange="OnPageSizeChange">
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="30">30</option>
<option value="50">50</option>
</select>
</div>
<select class="form-control" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectChanged">
@foreach (var (key, value) in Items)
{
<option value="@key">@value</option>
}
</select>

View file

@ -17,17 +17,41 @@
using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components;
using Wonky.Client.Services;
namespace Wonky.Client.Components
{
public partial class PageSizeDropDown
public partial class PageSizeDropDown : IDisposable
{
[Parameter] public EventCallback<string> OnPageSizeChanged { get; set; }
private string PageSize { get; set; } = "5";
private async Task OnPageSizeChange(ChangeEventArgs eventArgs)
[Inject] private ILocalStorageService LocalStorage { get; set; }
[Inject] private ProfileService ProfileService { get; set; }
private Dictionary<string, string> Items { get; set; } = new();
private Preferences _preferences = new();
private string? Selection { get; set; }
protected override async Task OnInitializedAsync()
{
await OnPageSizeChanged.InvokeAsync(PageSize);
ProfileService.OnChange += ProfileServiceOnOnChange;
_preferences = await ProfileService.GetPreferences();
Items.Add("5", "5");
Items.Add("10", "10");
Items.Add("15", "15");
Items.Add("30", "30");
Items.Add("50", "50");
Selection = (from x in Items where x.Key == _preferences.PageSize select x.Value).First();
}
}
private async Task OnSelectChanged(ChangeEventArgs e)
{
await ProfileService.SetPageSize(e.Value?.ToString());
}
private void ProfileServiceOnOnChange(Preferences newPreferences)
{
_preferences = newPreferences;
StateHasChanged();
}
public void Dispose()
{
ProfileService.OnChange -= ProfileServiceOnOnChange;
}
}
}

View file

@ -45,6 +45,6 @@ namespace Wonky.Client.Models
public string DlvAddress2 { get; set; } = "";
public string DlvZipCode { get; set; } = "";
public string DlvCity { get; set; } = "";
public List<CrmActivityLine> Lines { get; set; } = new();
public List<CrmSalesLines> Lines { get; set; } = new();
}
}

View file

@ -48,7 +48,7 @@ public partial class PurchaseOrderCreate : IDisposable
[Inject] public ISalesItemHttpRepository SalesItemRepo { get; set; }
[Parameter] public string Account { get; set; }
public List<CrmActivityLine> Lines { get; set; } = new();
public List<CrmSalesLines> Lines { get; set; } = new();
protected override async Task OnInitializedAsync()
{
Interceptor.RegisterEvent();

View file

@ -0,0 +1,98 @@
using Blazored.LocalStorage;
namespace Wonky.Client.Services;
public record Preferences
{
public bool DisplayIgnored { get; set; } = false;
public bool DisplayAll { get; set; } = false;
public string CompanySearch { get; set; } = "name";
public string CompanySort { get; set; } = "name";
public string ItemSearch { get; set; } = "name";
public string ItemSort { get; set; } = "name";
public string PageSize { get; set; } = "5";
public string ItemGroup { get; set; } = "all";
}
public class ProfileService
{
private readonly ILocalStorageService _localStorageService;
public event Action<Preferences>? OnChange;
public ProfileService(ILocalStorageService localStorageService)
{
_localStorageService = localStorageService;
}
public async Task ToggleIgnored(bool toggle)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { DisplayIgnored = toggle };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task ToggleAll(bool toggle)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { DisplayAll = toggle };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task SetCompanySearch(string column)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { CompanySearch = column };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task SetCompanySort(string column)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { CompanySort = column };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task SetItemSearch(string column)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { ItemSearch = column };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task SetItemSort(string column)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { ItemSort = column };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task SetPageSize(string pageSize)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { PageSize = pageSize };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task SetItemGroup(string group)
{
var preferences = await GetPreferences();
var newPreferences = preferences
with { ItemGroup = group };
await _localStorageService.SetItemAsync("preferences", newPreferences);
OnChange?.Invoke(newPreferences);
}
public async Task<Preferences> GetPreferences()
{
return await _localStorageService.GetItemAsync<Preferences>("preferences")
?? new Preferences();
}
}

View file

@ -1,34 +0,0 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Wonky.Entity.DTO;
public class CrmActivity
{
public int ActivityId { get; set; }
public string CompanyId { get; set; } = "";
// From company row
[Required(ErrorMessage = "Konto skal udfyldes")] public string Account { get; set; } = "";
[Required(ErrorMessage = "Moms nummer skal udfyldes")] public string VatNumber { get; set; } = "";
[Required(ErrorMessage = "Navn skal udfyldes")] public string Name { get; set; } = "";
public string Address { get; set; } = "";
public string Address2 { get; set; } = "";
[Required(ErrorMessage = "Bynavn skal udfyldes")] public string City { get; set; }= "";
[Required(ErrorMessage = "Postnummer skal udfyldes")] public string ZipCode { get; set; } = "";
[Required(ErrorMessage = "Salgskonsulent skal udfyldes")] public string SalesRep { get; set; } = "";
public string Phone { get; set; } = "";
public string EMail { get; set; } = "";
// Form entries
public string ReferenceNumber { get; set; } = "";
[Required(ErrorMessage = "Reference skal udfyldes")] public string YourRef { get; set; } = "";
public string OurRef { get; set; } = "";
[MaxLength(255, ErrorMessage = "Du kan h<>jst bruge 255 tegn")] public string OrderMessage { get; set; } = "";
// From company or form entry
public string DlvName { get; set; } = "";
public string DlvAddress1 { get; set; } = "";
public string DlvAddress2 { get; set; } = "";
public string DlvZipCode { get; set; } = "";
public string DlvCity { get; set; } = "";
public List<CrmActivityLine> Lines { get; set; } = new();
}

View file

@ -0,0 +1,31 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace Wonky.Entity.DTO;
public class CrmDocumentDto
{
// Base account info
public string CompanyId { get; set; } = "";
public string Account { get; set; } = "";
public string VatNumber { get; set; } = "";
public string Name { get; set; } = "";
public string Address { get; set; } = "";
public string Address2 { get; set; } = "";
public string City { get; set; }= "";
public string ZipCode { get; set; } = "";
public string SalesRep { get; set; } = "";
public string Phone { get; set; } = "";
public string EMail { get; set; } = "";
// Form entries
public string ReferenceNumber { get; set; } = "";
public string YourRef { get; set; } = "";
public string OurRef { get; set; } = "";
public string OrderMessage { get; set; } = "";
// From company or form entry
public string DlvName { get; set; } = "";
public string DlvAddress1 { get; set; } = "";
public string DlvAddress2 { get; set; } = "";
public string DlvZipCode { get; set; } = "";
public string DlvCity { get; set; } = "";
}

View file

@ -15,7 +15,7 @@
//
namespace Wonky.Entity.DTO;
public class CrmActivityLine
public class CrmSalesLines
{
public int ActivityLineId { get; set; }
public int ActivityId { get; set; }