wip
This commit is contained in:
parent
b3cd44431e
commit
afe2dd024e
14 changed files with 248 additions and 84 deletions
|
@ -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>
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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 class="form-control" @bind-value="@Selection" @bind-value:event="oninput" @onchange="OnSelectChanged">
|
||||
@foreach (var (key, value) in Items)
|
||||
{
|
||||
<option value="@key">@value</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
|
@ -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";
|
||||
[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()
|
||||
{
|
||||
ProfileService.OnChange += ProfileServiceOnOnChange;
|
||||
_preferences = await ProfileService.GetPreferences();
|
||||
|
||||
private async Task OnPageSizeChange(ChangeEventArgs eventArgs)
|
||||
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 OnPageSizeChanged.InvokeAsync(PageSize);
|
||||
await ProfileService.SetPageSize(e.Value?.ToString());
|
||||
}
|
||||
private void ProfileServiceOnOnChange(Preferences newPreferences)
|
||||
{
|
||||
_preferences = newPreferences;
|
||||
StateHasChanged();
|
||||
}
|
||||
public void Dispose()
|
||||
{
|
||||
ProfileService.OnChange -= ProfileServiceOnOnChange;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
98
Wonky.Client/Services/ProfileService.cs
Normal file
98
Wonky.Client/Services/ProfileService.cs
Normal 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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
31
Wonky.Entity/DTO/CrmDocumentDto.cs
Normal file
31
Wonky.Entity/DTO/CrmDocumentDto.cs
Normal 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; } = "";
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
//
|
||||
namespace Wonky.Entity.DTO;
|
||||
|
||||
public class CrmActivityLine
|
||||
public class CrmSalesLines
|
||||
{
|
||||
public int ActivityLineId { get; set; }
|
||||
public int ActivityId { get; set; }
|
Loading…
Reference in a new issue