@@ -132,5 +129,5 @@
}
else
{
-
Henter data...
+@*
*@
}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/CompanyUpdate.razor.cs b/Wonky.Client/Pages/CompanyUpdate.razor.cs
index 4617a93f..fb86d3ab 100644
--- a/Wonky.Client/Pages/CompanyUpdate.razor.cs
+++ b/Wonky.Client/Pages/CompanyUpdate.razor.cs
@@ -13,11 +13,14 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
+using System.Text.Json;
+using System.Text.Json.Serialization;
using Blazored.Toast.Services;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpRepository;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
+using Wonky.Client.Helpers;
using Wonky.Client.Models;
using Wonky.Client.Services;
using Wonky.Entity.DTO;
@@ -33,44 +36,59 @@ public partial class CompanyUpdate : IDisposable
[Inject] public IToastService ToastService { get; set; }
[Inject] public ILogger
Logger { get; set; }
[Inject] public NavigationManager Navigation { get; set; }
- [Inject] public VirkRegistryService VirkRegistryService { get; set; }
- [Parameter] public string Account { get; set; } = null!;
- private CompanyDto _companyDto;
- private EditContext _editContext;
+ [Inject] public VatOwnerLookupService VatOwnerLookupService { get; set; }
+ [Parameter] public string Account { get; set; } = "";
+ [Parameter] public string CompanyId { get; set; } = "";
+ private CompanyDto _company { get; set; }
+ private EditContext _editContext { get; set; }
private List VInfos { get; set; } = new();
private VirkRegInfo _virkRegInfo { get; set; } = new();
private DateTime LastVisit { get; set; }
private DateTime NextVisit { get; set; }
- private string RegState { get; set; } = "the-ugly";
+ private string _vatState { get; set; } = "the-ugly";
protected override async Task OnInitializedAsync()
{
- _companyDto = await CompanyRepo.GetCompanyByAccount(Account);
- LastVisit = DateTime.Parse(_companyDto.LastVisit);
- NextVisit = DateTime.Parse(_companyDto.NextVisit);
- _editContext = new EditContext(_companyDto);
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
- if(!string.IsNullOrWhiteSpace(_companyDto.VatNumber))
- await GetInfoFromVat(_companyDto.VatNumber);
- //_companyDto.CompanyId = Squid.DecodeSquid(_companyDto.CompanyId).ToString();
+ _company = await CompanyRepo.GetCompanyById(CompanyId);
+
+ LastVisit = DateTime.Parse(_company.LastVisit);
+ NextVisit = DateTime.Parse(_company.NextVisit);
+ _editContext = new EditContext(_company);
+
+ Console.WriteLine(JsonSerializer.Serialize(_company));
+
+ if(_company.HasFolded == 1)
+ {
+ _vatState = "the-dead";
+ }
+ else
+ {
+ _vatState = VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber) ? "the-good" : "the-draw";
+ }
}
private async Task Update()
{
-
- var lv = DateTime.TryParse(_companyDto.LastVisit, out var lvValidated);
- var nv = DateTime.TryParse(_companyDto.NextVisit, out var nvValidated);
+ if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber))
+ {
+ ToastService.ShowError($"CVR/VAT/ORG nummer er ugyldig.");
+ StateHasChanged();
+ return;
+ }
+ var lv = DateTime.TryParse(_company.LastVisit, out var lvValidated);
+ var nv = DateTime.TryParse(_company.NextVisit, out var nvValidated);
if (lv && nv)
{
- _companyDto.LastVisit = $"{lvValidated:yyyy-MM-dd}";
- _companyDto.NextVisit = $"{nvValidated:yyyy-MM-dd}";
+ _company.LastVisit = $"{lvValidated:yyyy-MM-dd}";
+ _company.NextVisit = $"{nvValidated:yyyy-MM-dd}";
- await CompanyRepo.UpdateCompany(_companyDto);
- ToastService.ShowSuccess($"Godt så. Firma '{_companyDto!.Name}' er opdateret.");
- Navigation.NavigateTo($"/company/id/{_companyDto.CompanyId}");
+ await CompanyRepo.UpdateCompany(_company);
+
+ ToastService.ShowSuccess($"Godt så. Firma '{_company!.Name}' er opdateret.");
+ Navigation.NavigateTo($"/company/{_company.CompanyId}");
}
-
}
private async Task GetInfoFromVat(string vatNumber)
{
@@ -79,7 +97,7 @@ public partial class CompanyUpdate : IDisposable
ToastService.ShowError($"CVR nummer mangler.");
return;
}
- VInfos = await VirkRegistryService
+ VInfos = await VatOwnerLookupService
.QueryVirkRegistry(
new VirkParams
{
@@ -94,7 +112,7 @@ public partial class CompanyUpdate : IDisposable
private async Task GetInfoFromAddress(VatAddress address)
{
- VInfos = await VirkRegistryService.QueryVirkRegistry(
+ VInfos = await VatOwnerLookupService.QueryVirkRegistry(
new VirkParams
{
StreetName = address.StreetName,
@@ -109,12 +127,12 @@ public partial class CompanyUpdate : IDisposable
private void SelectCompany(string vatNumber)
{
_virkRegInfo = (from x in VInfos where x.VatNumber == vatNumber select x).First();
- _companyDto.Name = _virkRegInfo.Name;
- _companyDto.Address1 = _virkRegInfo.CoName;
- _companyDto.Address2 = _virkRegInfo.Address;
- _companyDto.ZipCode = _virkRegInfo.ZipCode;
- _companyDto.City = _virkRegInfo.City;
- _companyDto.VatNumber = _virkRegInfo.VatNumber;
+ _company.Name = _virkRegInfo.Name;
+ _company.Address1 = _virkRegInfo.CoName;
+ _company.Address2 = _virkRegInfo.Address;
+ _company.ZipCode = _virkRegInfo.ZipCode;
+ _company.City = _virkRegInfo.City;
+ _company.VatNumber = _virkRegInfo.VatNumber;
}
public void Dispose()
diff --git a/Wonky.Client/Pages/CompanyView.razor b/Wonky.Client/Pages/CompanyView.razor
index 3f1efb8b..58acf7bf 100644
--- a/Wonky.Client/Pages/CompanyView.razor
+++ b/Wonky.Client/Pages/CompanyView.razor
@@ -15,61 +15,63 @@
//
*@
-@page "/company/account/{account}"
-@page "/company/id/{companyId}"
+@page "/company/{companyId}"
@using Microsoft.AspNetCore.Authorization
@using Wonky.Client.Components;
@using Wonky.Client.Helpers
+@using Wonky.Entity.Models
@attribute [Authorize(Roles = "Adviser")]
Navn |
- @CompanyDto.Name |
+ @_company.Name |
CO navn |
- @CompanyDto.Address1 |
+ @_company.Address1 |
Adresse |
- @CompanyDto.Address2 |
+ @_company.Address2 |
Postnummer |
- @CompanyDto.ZipCode |
+ @_company.ZipCode |
Bynavn |
- @CompanyDto.City |
+ @_company.City |
CVR |
- |
- @CompanyDto.VatNumber |
+ |
+ @_company.VatNumber |
Telefon |
- @CompanyDto.Phone |
+ @_company.Phone |
Email |
- @CompanyDto.Email |
+ @_company.Email |
Sidste besøg |
- @CompanyDto.LastVisit |
+ @_company.LastVisit |
Næste besøg |
- |
- @CompanyDto.NextVisit |
+ |
+ @_company.NextVisit |
@@ -78,10 +80,10 @@
diff --git a/Wonky.Client/Pages/CompanyView.razor.cs b/Wonky.Client/Pages/CompanyView.razor.cs
index 7e462fd8..bda9a99a 100644
--- a/Wonky.Client/Pages/CompanyView.razor.cs
+++ b/Wonky.Client/Pages/CompanyView.razor.cs
@@ -29,38 +29,28 @@ public partial class CompanyView : IDisposable
{
[Inject] public ICompanyHttpRepository CompanyRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
- [Inject] public VirkRegistryService VirkRegistryService { get; set; }
- [Parameter] public string Account { get; set; } = "";
+ [Inject] public VatOwnerLookupService VatOwnerLookup { get; set; }
+ [Inject] public ILogger
Logger { get; set; }
[Parameter] public string CompanyId { get; set; } = "";
- private CompanyDto CompanyDto { get; set; } = new ();
- private VirkRegInfo VirkRegInfo { get; set; } = new();
- private string VisitState { get; set; } = "the-ugly";
- private bool ValidCvr { get; set; } = true;
-
-
+ private CompanyDto _company { get; set; } = new ();
+ private string _vatState { get; set; } = "the-dead";
+ private bool _hasFolded { get; set; }
+
protected override async Task OnInitializedAsync()
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
- if (!string.IsNullOrWhiteSpace(Account))
+ _company = await CompanyRepo.GetCompanyById(CompanyId);
+
+ if(_company.HasFolded == 1)
{
- CompanyDto = await CompanyRepo.GetCompanyByAccount(Account);
+ _vatState = "the-dead";
+ _hasFolded = true;
}
else
{
- if (!string.IsNullOrWhiteSpace(CompanyId))
- {
- CompanyDto = await CompanyRepo.GetCompanyById(CompanyId);
- }
+ _vatState = VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber) ? "the-good" : "the-draw";
}
-
- var theUgly = DateTime.Parse(CompanyDto.NextVisit);
- var theBad = theUgly.AddDays(-14);
- if (DateTime.Now <= theUgly)
- {
- VisitState = DateTime.Now >= theBad ? "the-bad" : "the-good";
- }
- ValidCvr = string.IsNullOrEmpty(CompanyDto.VatNumber) || CompanyDto.VatNumber.Length <= 8;
}
///
@@ -68,6 +58,6 @@ public partial class CompanyView : IDisposable
///
public void Dispose()
{
- Interceptor!.DisposeEvent();
+ Interceptor.DisposeEvent();
}
}
\ No newline at end of file
diff --git a/Wonky.Client/Pages/PurchaseOrderCreate.razor b/Wonky.Client/Pages/PurchaseOrderCreate.razor
index 1faa406b..66dd3c6d 100644
--- a/Wonky.Client/Pages/PurchaseOrderCreate.razor
+++ b/Wonky.Client/Pages/PurchaseOrderCreate.razor
@@ -15,7 +15,7 @@
//
*@
-@page "/company/{account}/activity"
+@page "/company/{companyId}/activity"
@using Microsoft.AspNetCore.Authorization
@attribute [Authorize(Roles = "Adviser")]
@using Wonky.Client.Components
@@ -102,6 +102,9 @@
+
diff --git a/Wonky.Client/Pages/PurchaseOrderCreate.razor.cs b/Wonky.Client/Pages/PurchaseOrderCreate.razor.cs
index 9e7ac513..d2d80542 100644
--- a/Wonky.Client/Pages/PurchaseOrderCreate.razor.cs
+++ b/Wonky.Client/Pages/PurchaseOrderCreate.razor.cs
@@ -33,7 +33,7 @@ public partial class PurchaseOrderCreate : IDisposable
{
private List
SalesItemList { get; set; } = new();
private PurchaseOrder _purchaseOrder = new ();
- private CompanyDto _companyDto = new();
+ private CompanyDto _company = new();
private EditContext _editContext;
private bool _poFormInvalid = true;
private MetaData? MetaData { get; set; } = new();
@@ -46,7 +46,7 @@ public partial class PurchaseOrderCreate : IDisposable
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ILocalStorageService StorageService { get; set; }
[Inject] public ISalesItemHttpRepository SalesItemRepo { get; set; }
- [Parameter] public string Account { get; set; }
+ [Parameter] public string CompanyId { get; set; }
public List Lines { get; set; } = new();
protected override async Task OnInitializedAsync()
@@ -55,9 +55,7 @@ public partial class PurchaseOrderCreate : IDisposable
Interceptor.RegisterBeforeSendEvent();
var ux = await StorageService.GetItemAsync("_ux");
-
- _companyDto = await CompanyRepo.GetCompanyByAccount(Account);
-
+ _company = await CompanyRepo.GetCompanyById(CompanyId);
_editContext = new EditContext(_purchaseOrder);
_editContext.OnFieldChanged += HandleFieldChanged;
@@ -66,30 +64,30 @@ public partial class PurchaseOrderCreate : IDisposable
// permanent identifications
_purchaseOrder.SalesRep = ux.Adviser;
- _purchaseOrder.Account = Account;
- _purchaseOrder.VatNumber = _companyDto.VatNumber;
- _purchaseOrder.EMail = _companyDto.Email;
- _purchaseOrder.Phone = _companyDto.Phone;
+ _purchaseOrder.Account = _company.Account;
+ _purchaseOrder.VatNumber = _company.VatNumber;
+ _purchaseOrder.EMail = _company.Email;
+ _purchaseOrder.Phone = _company.Phone;
_purchaseOrder.OurRef = ux.FullName.Split(" ")[0];
- _purchaseOrder.Name = _companyDto.Name;
- _purchaseOrder.Address = _companyDto.Address1;
- _purchaseOrder.Address2 = _companyDto.Address2;
- _purchaseOrder.ZipCode = _companyDto.ZipCode;
- _purchaseOrder.City = _companyDto.City;
+ _purchaseOrder.Name = _company.Name;
+ _purchaseOrder.Address = _company.Address1;
+ _purchaseOrder.Address2 = _company.Address2;
+ _purchaseOrder.ZipCode = _company.ZipCode;
+ _purchaseOrder.City = _company.City;
- _purchaseOrder.DlvName = _companyDto.Name;
- _purchaseOrder.DlvAddress1 = _companyDto.Address1;
- _purchaseOrder.DlvAddress2 = _companyDto.Address2;
- _purchaseOrder.DlvZipCode = _companyDto.ZipCode;
- _purchaseOrder.DlvCity = _companyDto.City;
+ _purchaseOrder.DlvName = _company.Name;
+ _purchaseOrder.DlvAddress1 = _company.Address1;
+ _purchaseOrder.DlvAddress2 = _company.Address2;
+ _purchaseOrder.DlvZipCode = _company.ZipCode;
+ _purchaseOrder.DlvCity = _company.City;
}
private async Task CreateActivity()
{
- await StorageService.SetItemAsync(Account, _purchaseOrder);
+ await StorageService.SetItemAsync(CompanyId, _purchaseOrder);
ToastService.ShowSuccess($"Aktivitet oprettet.");
}
diff --git a/Wonky.Client/Program.cs b/Wonky.Client/Program.cs
index c6ae82a8..b530ded5 100644
--- a/Wonky.Client/Program.cs
+++ b/Wonky.Client/Program.cs
@@ -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/Services/VirkRegistryService.cs b/Wonky.Client/Services/VatOwnerLookupService.cs
similarity index 96%
rename from Wonky.Client/Services/VirkRegistryService.cs
rename to Wonky.Client/Services/VatOwnerLookupService.cs
index 432d8ec7..0a284743 100644
--- a/Wonky.Client/Services/VirkRegistryService.cs
+++ b/Wonky.Client/Services/VatOwnerLookupService.cs
@@ -22,14 +22,14 @@ using Wonky.Entity.Requests;
namespace Wonky.Client.Services;
-public class VirkRegistryService
+public class VatOwnerLookupService
{
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 VirkRegistryService(HttpClient client, IOptions apiConfig)
+ public VatOwnerLookupService(HttpClient client, IOptions apiConfig)
{
_client = client;
_apiConfig = apiConfig;
diff --git a/Wonky.Client/wwwroot/css/app.css b/Wonky.Client/wwwroot/css/app.css
index 001cb20d..353df2d0 100644
--- a/Wonky.Client/wwwroot/css/app.css
+++ b/Wonky.Client/wwwroot/css/app.css
@@ -14,6 +14,9 @@
min-width: 24px;
min-height: 24px;
}
+.the-dead {
+ background-color: black;
+}
.the-draw {
background-color: purple;
}
diff --git a/Wonky.Entity/DTO/CompanyDto.cs b/Wonky.Entity/DTO/CompanyDto.cs
index c0ace262..b598465e 100644
--- a/Wonky.Entity/DTO/CompanyDto.cs
+++ b/Wonky.Entity/DTO/CompanyDto.cs
@@ -21,10 +21,10 @@ namespace Wonky.Entity.DTO;
public class CompanyDto
{
- [Required(ErrorMessage = "Navn skal udyldes")] public string Name { get; set; } = "";
- [Required(ErrorMessage = "Postnummer skal udfyldes")] public string ZipCode { get; set; } = "";
- [Required(ErrorMessage = "Bynavn skal udfyldes")] public string City { get; set; } = "";
- public string VatNumber { get; set; } = "";
+ [Required(ErrorMessage = "Navn skal udyldes")] public string Name { get; set; }
+ [Required(ErrorMessage = "Postnummer skal udfyldes")] public string ZipCode { get; set; }
+ [Required(ErrorMessage = "Bynavn skal udfyldes")] public string City { get; set; }
+ [Required(ErrorMessage = "ORG/VAT/CVR er ikke et gyldigt nummer")] public string VatNumber { get; set; }
public string CompanyId { get; set; } = "";
public string SalesRepId { get; set; } = "";
public string BcId { get; set; } = "";