-
-
- Varenavn
-
-
- Varenr
-
-
- Antal
-
-
- Pris
-
-
- Rabat
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
- @_selectedItem.Name
-
-
- @_selectedItem.Sku
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- }
+
-
-
- @* Draft lines *@
-
-
-
-
-
-
-
- Navn |
- Varenr |
- Antal |
- Enhedspris |
- Linjesum |
- |
-
-
-
- @* ---------------------------------------------- *@
- @* Display draft content *@
- @if (DraftStateProvider != null && DraftStateProvider.Draft.Items.Count > 0)
- {
- @foreach (var cItem in DraftStateProvider.Draft.Items)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @if (SalesItems.Any())
{
-
- @cItem.Item.Name |
- @cItem.Item.Sku |
- @cItem.Quantity |
- @cItem.Price |
- @cItem.Total |
-
-
- |
-
+
+
+
+ Navn |
+ Varenr |
+ Stk / Pris |
+
+
+
+ @foreach (var item in SalesItems)
+ {
+
+ @item.Name |
+ @item.Sku |
+
+
+ @foreach (var rate in item.Rates)
+ {
+ -
+
@rate.Quantity
+ @rate.Rate
+
+
+ }
+
+ |
+
+ }
+
+
}
-
- |
- |
- |
- Total |
- @DraftStateProvider.Draft.Total |
- |
-
- }
-
-
-
-
-
+ else
+ {
+
+ }
+ @if (_selectedItem != null && ShowItem)
+ {
+
+
+
+
+
+ Varenavn
+
+
+ Varenr
+
+
+ Antal
+
+
+ Pris
+
+
+ Rabat
+
+
+
+
+
+
+
+ @_selectedItem.Name
+
+
+ @_selectedItem.Sku
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ Navn |
+ Varenr |
+ Antal |
+ Enhedspris |
+ Linjesum |
+ |
+
+
+
+ @if (DraftStateProvider != null && DraftStateProvider.Draft.Items.Count > 0)
+ {
+ @foreach (var cItem in DraftStateProvider.Draft.Items)
+ {
+
+ @cItem.Item.Name |
+ @cItem.Item.Sku |
+ @cItem.Quantity |
+ @cItem.Price |
+ @cItem.Total |
+
+
+ |
+
+ }
+
+ |
+ |
+ |
+ Total |
+ @DraftStateProvider.Draft.Total |
+ |
+
+ }
+
+
+
+
+
+
+
+
+
-
- @* Section for delivery address *@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
- @* ---------------------------------------------- *@
- @* Display action buttons *@
-
-
-
Tilbage
-
-
-
-
-
}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/CrmActivityCreate.razor.cs b/Wonky.Client/Pages/CrmActivityCreate.razor.cs
index 1c5aa776..4662c143 100644
--- a/Wonky.Client/Pages/CrmActivityCreate.razor.cs
+++ b/Wonky.Client/Pages/CrmActivityCreate.razor.cs
@@ -30,33 +30,32 @@ namespace Wonky.Client.Pages;
public partial class CrmActivityCreate : IDisposable
{
+ [Inject] public IToastService ToastService { get; set; }
+ [Inject] public NavigationManager NavigationManager { get; set; }
+ [Inject] public ILocalStorageService StorageService { get; set; }
[Inject] private ISalesItemHttpRepository ItemRepo { get; set; }
[Inject] private ICompanyHttpRepository CompanyRepo { get; set; }
[Inject] private HttpInterceptorService Interceptor { get; set; }
[Inject] private UserPreferenceService UserPrefs { get; set; }
- [Inject] public IToastService ToastService { get; set; }
- [Inject] public NavigationManager NavigationManager { get; set; }
- [Inject] public ILocalStorageService StorageService { get; set; }
- [Inject] public ISalesItemHttpRepository SalesItemRepo { get; set; }
- [Parameter] public string CompanyId { get; set; }
[CascadingParameter] DraftStateProvider DraftStateProvider { get; set; }
+ [Parameter] public string CompanyId { get; set; }
private SalesItemDto _selectedItem { get; set; } = new();
private List
SalesItems { get; set; } = new();
- private MetaData _meta { get; set; } = new();
+ // private MetaData _meta { get; set; } = new();
private Preferences _prefs { get; set; } = new();
- private PurchaseOrder _purchaseOrder = new ();
+ private ActivityHead _poDraft { get; set; } = new();
private CompanyDto _company = new();
- private EditContext _editContext { get; set; }
- private MetaData? MetaData { get; set; } = new();
private CatalogPagingParams _paging = new();
+ private EditContext _createActivity { get; set; }
private bool _poFormInvalid { get; set; } = true;
private bool ShowItem { get; set; }
- private bool ShowSearchView { get; set; }
private string Quantity = "1";
private string Price = "0";
private string Discount = "0";
+ private bool InvalidActivityType { get; set; } = true;
private bool InvalidActivity { get; set; } = true;
private bool InvalidCanvas { get; set; } = true;
+ private bool InvalidDate { get; set; } = true;
protected override async Task OnInitializedAsync()
{
@@ -67,32 +66,81 @@ public partial class CrmActivityCreate : IDisposable
await GetSalesItems();
var ux = await StorageService.GetItemAsync("_ux");
_company = await CompanyRepo.GetCompanyById(CompanyId);
- _editContext = new EditContext(_purchaseOrder);
- _editContext.OnFieldChanged += HandleFieldChanged;
+
+ _createActivity = new EditContext(_poDraft);
+ _createActivity.OnFieldChanged += HandleFieldChanged;
// set up indexdb identification
- _purchaseOrder.ActivityId = CompanyId;
- _purchaseOrder.CrmCompanyKey = CompanyId;
- _purchaseOrder.ActivityDate = DateTime.Now;
+ _poDraft.ActivityId = CompanyId;
+ _poDraft.CrmCompanyKey = CompanyId;
+ _poDraft.ActivityDate = string.IsNullOrWhiteSpace(_prefs.WorkDate)
+ ? DateTime.Now
+ : DateTime.Parse(_prefs.WorkDate);
+
// permanent identifications
- _purchaseOrder.SalesRep = ux.Adviser;
- _purchaseOrder.Account = _company.Account;
- _purchaseOrder.VatNumber = _company.VatNumber;
- _purchaseOrder.EMail = _company.Email;
- _purchaseOrder.Phone = _company.Phone;
- _purchaseOrder.OurRef = ux.FullName.Split(" ")[0];
+ _poDraft.SalesRep = ux.Adviser;
+ _poDraft.Account = _company.Account;
+ _poDraft.VatNumber = _company.VatNumber;
+ _poDraft.EMail = _company.Email;
+ _poDraft.Phone = _company.Phone;
+ _poDraft.OurRef = ux.FullName.Split(" ")[0];
- _purchaseOrder.Name = _company.Name;
- _purchaseOrder.Address = _company.Address1;
- _purchaseOrder.Address2 = _company.Address2;
- _purchaseOrder.ZipCode = _company.ZipCode;
- _purchaseOrder.City = _company.City;
+ _poDraft.Name = _company.Name;
+ _poDraft.Address = _company.Address1;
+ _poDraft.Address2 = _company.Address2;
+ _poDraft.ZipCode = _company.ZipCode;
+ _poDraft.City = _company.City;
- _purchaseOrder.DlvName = _company.Name;
- _purchaseOrder.DlvAddress1 = _company.Address1;
- _purchaseOrder.DlvAddress2 = _company.Address2;
- _purchaseOrder.DlvZipCode = _company.ZipCode;
- _purchaseOrder.DlvCity = _company.City;
+ _poDraft.DlvName = "";
+ _poDraft.DlvAddress1 = "";
+ _poDraft.DlvAddress2 = "";
+ _poDraft.DlvZipCode = "";
+ _poDraft.DlvCity = "";
+ }
+ private async Task CreateOffer()
+ {
+ await CreateActivity();
+ // post to create offer endpoint
+ }
+ private async Task CreateOrder()
+ {
+ await CreateActivity();
+ // post to create order endpoint
+ }
+ private async Task CreateActivity()
+ {
+ // write work date to preference
+ await UserPrefs.SetWorkDate(_poDraft.ActivityDate);
+
+ var ln = 0;
+ // post to create activity endpoint
+ foreach (var line in DraftStateProvider.Draft.Items.Select(item => new ActivityLine
+ {
+ Price = item.Price,
+ Discount = item.Discount,
+ Qty = item.Quantity,
+ Sku = item.Item.Sku,
+ Text = item.Item.Name,
+ LineAmount = item.Total,
+ LineNumber = ++ln
+ }))
+ {
+ _poDraft.Lines.Add(line);
+ }
+ await StorageService.SetItemAsync(CompanyId, _poDraft);
+ //ToastService.ShowSuccess($"Aktivitet oprettet.");
+ }
+
+ private void CheckActivity()
+ {
+ InvalidActivityType = string.IsNullOrWhiteSpace(_poDraft.ActivityType);
+ Console.WriteLine($"invalidType => {InvalidActivityType}");
+ }
+
+ private void CheckDate()
+ {
+ InvalidDate = _poDraft.CheckDate;
+ Console.WriteLine($"invalidDate => {InvalidDate}");
}
private async Task DeleteDraft()
@@ -157,68 +205,37 @@ public partial class CrmActivityCreate : IDisposable
_paging.PageSize = 5;
var response = await ItemRepo.GetSalesItemsPaged(_paging);
SalesItems = response.Items!;
- _meta = response.MetaData;
- }
- private async Task CreateActivity()
- {
- foreach (var item in DraftStateProvider.Draft.Items)
- {
- var ln = 1;
- var line = new CrmSalesLines
- {
- Price = item.Price,
- Discount = 0,
- Qty = item.Quantity,
- Sku = item.Item.Sku,
- Text = item.Item.Name,
- LineAmount = item.Total,
- LineNumber = ++ln
- };
- _purchaseOrder.Lines.Add(line);
- }
- await StorageService.SetItemAsync(CompanyId, _purchaseOrder);
- //ToastService.ShowSuccess($"Aktivitet oprettet.");
- }
-
- private async Task CreateActivityOrder()
- {
- await CreateActivity();
- // send to api -> send to bc
- }
- private async Task CreateActivityOffer()
- {
- await CreateActivity();
- // send to api -> as email
+ // _meta = response.MetaData;
}
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
{
- _poFormInvalid = !_editContext.Validate();
- InvalidActivity = string.IsNullOrWhiteSpace(_purchaseOrder.ActivityType) || _poFormInvalid || DraftStateProvider.Draft.Items.Count == 0 || !_purchaseOrder.CheckDate;
- InvalidCanvas = string.IsNullOrWhiteSpace(_purchaseOrder.ActivityType) || _poFormInvalid || !_purchaseOrder.CheckDate;
+ _poFormInvalid = !_createActivity.Validate();
+ InvalidCanvas = InvalidActivityType || InvalidDate;
+ InvalidActivity = InvalidActivityType || _poFormInvalid || DraftStateProvider.Draft.Items.Count == 0 || InvalidDate;
StateHasChanged();
}
private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
{
- if (!string.IsNullOrEmpty(_purchaseOrder.VatNumber))
+ if (!string.IsNullOrEmpty(_poDraft.VatNumber))
{
- if(!VatUtils.ValidateFormat(_company.CountryCode, _purchaseOrder.VatNumber))
+ if(!VatUtils.ValidateFormat(_company.CountryCode, _poDraft.VatNumber))
ToastService.ShowWarning("CVR / ORG nummer er ikke et gyldigt registreringsnummer");
}
- if (string.IsNullOrEmpty(_purchaseOrder.ActivityType))
+ if (string.IsNullOrEmpty(_poDraft.ActivityType))
ToastService.ShowWarning("Aktivitet type kan ikke være tom");
_poFormInvalid = false;
- _editContext.OnFieldChanged -= HandleFieldChanged;
- _editContext = new EditContext(_purchaseOrder);
- _editContext.OnFieldChanged += HandleFieldChanged;
- _editContext.OnValidationStateChanged -= ValidationChanged;
+ _createActivity.OnFieldChanged -= HandleFieldChanged;
+ _createActivity = new EditContext(_poDraft);
+ _createActivity.OnFieldChanged += HandleFieldChanged;
+ _createActivity.OnValidationStateChanged -= ValidationChanged;
}
public void Dispose()
{
Interceptor.DisposeEvent();
- _editContext.OnFieldChanged -= HandleFieldChanged;
- _editContext.OnValidationStateChanged -= ValidationChanged;
+ _createActivity.OnFieldChanged -= HandleFieldChanged;
+ _createActivity.OnValidationStateChanged -= ValidationChanged;
}
}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/Login.razor.cs b/Wonky.Client/Pages/Login.razor.cs
index 2158a8c8..acc9be5d 100644
--- a/Wonky.Client/Pages/Login.razor.cs
+++ b/Wonky.Client/Pages/Login.razor.cs
@@ -22,14 +22,10 @@ namespace Wonky.Client.Pages;
public partial class Login
{
- private UserAuthenticationDto _userAuthenticationDto = new ();
-
- [Inject]
- public IAuthenticationService AuthenticationService { get; set; }
-
[Inject] public NavigationManager NavigationManager { get; set; }
-
+ [Inject] public IAuthenticationService AuthenticationService { get; set; }
[Parameter] public string ReturnUrl { get; set; } = "";
+ private UserAuthenticationDto _userAuthenticationDto = new ();
private bool ShowAuthError { get; set; }
private string? Error { get; set; }
private bool execLogin = false;
diff --git a/Wonky.Client/Pages/Page404.razor.cs b/Wonky.Client/Pages/Page404.razor.cs
index 343c6357..396a6a03 100644
--- a/Wonky.Client/Pages/Page404.razor.cs
+++ b/Wonky.Client/Pages/Page404.razor.cs
@@ -19,8 +19,7 @@ namespace Wonky.Client.Pages;
public partial class Page404
{
- [Inject]
- public NavigationManager NavigationManager { get; set; }
+ [Inject] public NavigationManager NavigationManager { get; set; }
public void NavigateToHome()
{
diff --git a/Wonky.Client/Pages/SalesItemCatalog.razor b/Wonky.Client/Pages/SalesItemCatalog.razor
index 0a3b11ca..e5bf5c4f 100644
--- a/Wonky.Client/Pages/SalesItemCatalog.razor
+++ b/Wonky.Client/Pages/SalesItemCatalog.razor
@@ -45,6 +45,6 @@
\ No newline at end of file
diff --git a/Wonky.Client/Pages/SalesItemCatalog.razor.cs b/Wonky.Client/Pages/SalesItemCatalog.razor.cs
index 50b60019..16aaf1a3 100644
--- a/Wonky.Client/Pages/SalesItemCatalog.razor.cs
+++ b/Wonky.Client/Pages/SalesItemCatalog.razor.cs
@@ -29,14 +29,14 @@ namespace Wonky.Client.Pages;
public partial class SalesItemCatalog : 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
SalesItemList { get; set; } = new();
+ private List SalesItems { get; set; } = new();
private MetaData? MetaData { get; set; } = new();
private CatalogPagingParams _paging = new();
private Preferences _preferences = new();
- [Inject] public ISalesItemHttpRepository SalesItemRepo { get; set; }
- [Inject] public HttpInterceptorService Interceptor { get; set; }
- [Inject] public ILocalStorageService LocalStorage { get; set; }
protected override async Task OnInitializedAsync()
{
@@ -52,7 +52,7 @@ public partial class SalesItemCatalog : IDisposable
private async Task SelectedPage(int page)
{
- SalesItemList = new List();
+ SalesItems = new List();
_paging.PageNumber = page;
await GetSalesItems();
}
@@ -60,13 +60,13 @@ public partial class SalesItemCatalog : IDisposable
private async Task GetSalesItems()
{
var pagingResponse = await SalesItemRepo.GetSalesItemsPaged(_paging);
- SalesItemList = pagingResponse.Items!;
+ SalesItems = pagingResponse.Items!;
MetaData = pagingResponse.MetaData;
}
private async Task SetPageSize(string pageSize)
{
- SalesItemList = new List();
+ SalesItems = new List();
_paging.PageSize = Convert.ToInt32(pageSize);
_paging.PageNumber = 1;
await GetSalesItems();
@@ -74,21 +74,21 @@ public partial class SalesItemCatalog : IDisposable
private async Task SetItemGroup(string groupFilter)
{
- SalesItemList = new List();
+ SalesItems = new List();
_paging.PageNumber = 1;
_paging.SelectGroup = groupFilter;
await GetSalesItems();
}
private async Task SetSearchCol(string columnName)
{
- SalesItemList = new List();
+ SalesItems = new List();
_paging.PageNumber = 1;
_paging.SearchColumn = columnName;
await GetSalesItems();
}
private async Task SetSearchPhrase(string searchTerm)
{
- SalesItemList = new List();
+ SalesItems = new List();
_paging.PageNumber = 1;
_paging.SearchTerm = searchTerm;
await GetSalesItems();
@@ -96,7 +96,7 @@ public partial class SalesItemCatalog : IDisposable
private async Task SetSortCol(string orderBy)
{
- SalesItemList = new List();
+ SalesItems = new List();
_paging.OrderBy = orderBy;
await GetSalesItems();
}
diff --git a/Wonky.Client/Program.cs b/Wonky.Client/Program.cs
index b530ded5..09fd3ae1 100644
--- a/Wonky.Client/Program.cs
+++ b/Wonky.Client/Program.cs
@@ -21,9 +21,9 @@ using Toolbelt.Blazor.Extensions.DependencyInjection;
using Blazored.LocalStorage;
using Blazored.Toast;
using Wonky.Client;
-using Wonky.Client.AuthProviders;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
+using Wonky.Client.Providers;
using Wonky.Client.Services;
using Wonky.Entity.Configuration;
@@ -57,7 +57,7 @@ builder.Services.AddAuthorizationCore();
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
-builder.Services.AddScoped();
+builder.Services.AddScoped();
builder.Services.AddScoped();
diff --git a/Wonky.Client/AuthProviders/AuthStateProvider.cs b/Wonky.Client/Providers/AuthStateProvider.cs
similarity index 97%
rename from Wonky.Client/AuthProviders/AuthStateProvider.cs
rename to Wonky.Client/Providers/AuthStateProvider.cs
index 778faa8e..8a8cfbae 100644
--- a/Wonky.Client/AuthProviders/AuthStateProvider.cs
+++ b/Wonky.Client/Providers/AuthStateProvider.cs
@@ -13,17 +13,13 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
-using System.Collections.Generic;
-using System.Linq;
-using System.Net.Http;
using System.Net.Http.Headers;
using System.Security.Claims;
-using System.Threading.Tasks;
using Blazored.LocalStorage;
using Microsoft.AspNetCore.Components.Authorization;
using Wonky.Entity.DTO;
-namespace Wonky.Client.AuthProviders
+namespace Wonky.Client.Providers
{
public class AuthStateProvider : AuthenticationStateProvider
{
diff --git a/Wonky.Client/Services/AuthenticationService.cs b/Wonky.Client/Services/AuthenticationService.cs
index c3106813..2532f1da 100644
--- a/Wonky.Client/Services/AuthenticationService.cs
+++ b/Wonky.Client/Services/AuthenticationService.cs
@@ -17,9 +17,9 @@ using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text.Json;
using Blazored.LocalStorage;
-using Wonky.Client.AuthProviders;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.Options;
+using Wonky.Client.Providers;
using Wonky.Entity.Configuration;
using Wonky.Entity.DTO;
diff --git a/Wonky.Client/Services/UserPreferenceService.cs b/Wonky.Client/Services/UserPreferenceService.cs
index bbb2c284..ff40ff74 100644
--- a/Wonky.Client/Services/UserPreferenceService.cs
+++ b/Wonky.Client/Services/UserPreferenceService.cs
@@ -9,6 +9,7 @@ public record Preferences
public string? ItemSearch { get; set; } = "name";
public string? ItemSort { get; set; } = "name";
public string PageSize { get; set; } = "10";
+ public string WorkDate { get; set; } = "";
}
public class UserPreferenceService
{
@@ -18,6 +19,18 @@ public class UserPreferenceService
{
_localStorageService = localStorageService;
}
+
+ public async Task SetWorkDate(DateTime workDate)
+ {
+ var preferences = await GetPreferences();
+ var newPreferences = preferences
+ with
+ {
+ WorkDate = $"{workDate:yyyy-MM-dd}"
+ };
+ await _localStorageService.SetItemAsync("preferences", newPreferences);
+ OnChange?.Invoke(newPreferences);
+ }
public async Task SetCompanySearch(string companySearch)
{
var preferences = await GetPreferences();
@@ -66,5 +79,4 @@ public class UserPreferenceService
return await _localStorageService.GetItemAsync("preferences")
?? new Preferences();
}
-
}
\ No newline at end of file
diff --git a/Wonky.Client/Services/VatOwnerLookupService.cs b/Wonky.Client/Services/VatInfoLookupService.cs
similarity index 96%
rename from Wonky.Client/Services/VatOwnerLookupService.cs
rename to Wonky.Client/Services/VatInfoLookupService.cs
index 0a284743..82fe951f 100644
--- a/Wonky.Client/Services/VatOwnerLookupService.cs
+++ b/Wonky.Client/Services/VatInfoLookupService.cs
@@ -22,14 +22,14 @@ using Wonky.Entity.Requests;
namespace Wonky.Client.Services;
-public class VatOwnerLookupService
+public class VatInfoLookupService
{
private readonly JsonSerializerOptions _options = new() { PropertyNameCaseInsensitive = true };
private readonly HttpClient _client;
private readonly IOptions _apiConfig;
private readonly List _noData = new() { new VirkRegInfo { Name = "INGEN DATA" } };
- public VatOwnerLookupService(HttpClient client, IOptions apiConfig)
+ public VatInfoLookupService(HttpClient client, IOptions apiConfig)
{
_client = client;
_apiConfig = apiConfig;
diff --git a/Wonky.Client/Shared/DraftStateProvider.razor.cs b/Wonky.Client/Shared/DraftStateProvider.razor.cs
index c96500df..4c186821 100644
--- a/Wonky.Client/Shared/DraftStateProvider.razor.cs
+++ b/Wonky.Client/Shared/DraftStateProvider.razor.cs
@@ -13,11 +13,9 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
-using System.Threading.Tasks;
using Blazored.LocalStorage;
using Wonky.Client.Models;
using Microsoft.AspNetCore.Components;
-using Wonky.Entity.Models;
namespace Wonky.Client.Shared;
diff --git a/Wonky.Client/Wonky.Client.csproj b/Wonky.Client/Wonky.Client.csproj
index 5914eb79..c8dcecbe 100644
--- a/Wonky.Client/Wonky.Client.csproj
+++ b/Wonky.Client/Wonky.Client.csproj
@@ -33,6 +33,7 @@
+
diff --git a/Wonky.Entity/DTO/CompanyDto.cs b/Wonky.Entity/DTO/CompanyDto.cs
index 5e684bc9..308f935c 100644
--- a/Wonky.Entity/DTO/CompanyDto.cs
+++ b/Wonky.Entity/DTO/CompanyDto.cs
@@ -21,7 +21,7 @@ namespace Wonky.Entity.DTO;
public class CompanyDto
{
- [Required(ErrorMessage = "Navn skal udyldes")] [MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string Name { get; set; }
+ [Required(ErrorMessage = "Navn skal udfyldes")] [MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string Name { get; set; }
[Required(ErrorMessage = "Postnummer skal udfyldes")] [MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string ZipCode { get; set; }
[Required(ErrorMessage = "Bynavn skal udfyldes")] [MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")] public string City { get; set; }
[Required(ErrorMessage = "ORG/VAT/CVR er ikke et gyldigt nummer")] public string VatNumber { get; set; }
diff --git a/Wonky.Entity/DTO/CrmDocumentDto.cs b/Wonky.Entity/DTO/CrmActivityHeadDto.cs
similarity index 97%
rename from Wonky.Entity/DTO/CrmDocumentDto.cs
rename to Wonky.Entity/DTO/CrmActivityHeadDto.cs
index 74e54724..d663d47d 100644
--- a/Wonky.Entity/DTO/CrmDocumentDto.cs
+++ b/Wonky.Entity/DTO/CrmActivityHeadDto.cs
@@ -3,7 +3,7 @@ using System.ComponentModel.DataAnnotations;
namespace Wonky.Entity.DTO;
-public class CrmDocumentDto
+public class CrmActivityHeadDto
{
// Base account info
public string CompanyId { get; set; } = "";
diff --git a/Wonky.Entity/DTO/CrmSalesLineDto.cs b/Wonky.Entity/DTO/CrmActivityLineDto.cs
similarity index 100%
rename from Wonky.Entity/DTO/CrmSalesLineDto.cs
rename to Wonky.Entity/DTO/CrmActivityLineDto.cs