diff --git a/Wonky.Client/Pages/AdvisorActivityCreatePage.razor.cs b/Wonky.Client/Pages/AdvisorActivityCreatePage.razor.cs
index b162c9dc..04df9dc7 100644
--- a/Wonky.Client/Pages/AdvisorActivityCreatePage.razor.cs
+++ b/Wonky.Client/Pages/AdvisorActivityCreatePage.razor.cs
@@ -39,7 +39,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
[Inject] private ILogger Logger { get; set; }
[Inject] private HttpInterceptorService Interceptor { get; set; }
[Inject] private UserProfileService Profiles { get; set; }
- [Inject] private IToastService Toast { get; set; }
+ [Inject] private IToastService Toaster { get; set; }
[Inject] private NavigationManager Navigator { get; set; }
[Inject] private ILocalStorageService Storage { get; set; }
[Inject] private ICountryCatalogRepository Catalog { get; set; }
@@ -153,6 +153,10 @@ public partial class AdvisorActivityCreatePage : IDisposable
}
Working = false;
//StateHasChanged();
+ if (Company.CountryCode.ToLower() == "se" && VatUtils.SanitizeVatNumber(Activity.VatNumber).Length < 10)
+ {
+ Toaster.ShowWarning("Organisationsnummer skal opdateres.");
+ }
}
private async Task CallConfirmProductCheckModel()
@@ -181,17 +185,17 @@ public partial class AdvisorActivityCreatePage : IDisposable
{
Working = true;
// pop a message
- Toast.ShowError("Produkt gennemgang mangler. Vent mens produkt oversigt indlæses. Gå ikke væk fra siden!", "Produkt check ...");
+ Toaster.ShowError("Produkt gennemgang mangler. Vent mens produkt oversigt indlæses. Gå ikke væk fra siden!", "Produkt check ...");
// product inventory has not been updated
// send rpc call to sync ERP to CRM
- Toast.ShowInfo("Vent mens data synkroniseres ...", "ERP til CRM ...");
+ Toaster.ShowInfo("Vent mens data synkroniseres ...", "ERP til CRM ...");
var ts = await CustomerHistory.InvoiceErpToCrmRpc(CompanyId, Company.HistorySync);
while (string.IsNullOrWhiteSpace(ts))
await Task.Delay(500);
// save pDate
await Storage.SetItemAsync($"{CompanyId}-pDate", ts);
// request products from backend
- Toast.ShowInfo("Vent mens produkt oversigt hentes", "CRM produkt liste");
+ Toaster.ShowInfo("Vent mens produkt oversigt hentes", "CRM produkt liste");
CheckList = await CustomerHistory.FetchInventory(CompanyId);
if(CheckList.Any())
@@ -211,6 +215,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
// Show CheckList modal
ConfirmProductCheckModal.Show();
}
+
private async Task ConfirmProductCheckCallback()
{
ConfirmProductCheckModal.Hide();
@@ -297,26 +302,35 @@ public partial class AdvisorActivityCreatePage : IDisposable
// avoid duplication
if (Working)
return;
- // validate customer address1 - this is a required input
+ // validate customer address1
+ // - this is a required input
if (string.IsNullOrWhiteSpace(Activity.Address1))
{
- Toast.ShowError("Kunde adresse er ufuldstændig.");
+ Toaster.ShowError("Kunde adresse er ufuldstændig.");
return;
}
- //
+ // validate org number
+ // - this is a required input
+ // - must validate according to country rules.
+ if (!VatUtils.ValidateFormat(Company.CountryCode, Activity.VatNumber))
+ {
+ Toaster.ShowError("Firma registreringsnummer er ikke korrekt.");
+ return;
+ }
+ // validate input according to status
switch (Activity.ActivityStatusEnum)
{
// don't accept order with no lines
case "order" when DraftProvider.Draft.Items.Count == 0:
- Toast.ShowError("Ved bestilling skal der være en eller flere linjer i kladden.");
+ Toaster.ShowError("Ved bestilling skal der være en eller flere linjer i kladden.");
return;
// phone number is required if first time customer
case "order" when Company.Account is "NY" or "" && string.IsNullOrWhiteSpace(Activity.Phone):
- Toast.ShowError("Ved bestilling til ny kunde skal telefon nummer angives.");
+ Toaster.ShowError("Ved bestilling til ny kunde skal telefon nummer angives.");
return;
// verify email address is a valid address
case "quote" when !Utils.IsValidEmail(Activity.Email):
- Toast.ShowError("Ved tilbud skal en gyldig email adresse angives.");
+ Toaster.ShowError("Ved tilbud skal en gyldig email adresse angives.");
return;
}
// raise working flag
@@ -371,7 +385,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
// show result message
if (result.IsSuccess)
{
- Toast.ShowSuccess($"{result.Message}",
+ Toaster.ShowSuccess($"{result.Message}",
DraftProvider.Draft.Items.Count == 0 ? "Besøg er oprettet" : "Bestilling/Tilbud er oprettet");
await DeleteDraft();
Navigator.NavigateTo($"/advisor/customers");
@@ -380,7 +394,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
// lower working flag
Working = false;
// show error message
- Toast.ShowError(result.Message, "ORDRE FEJL");
+ Toaster.ShowError(result.Message, "ORDRE FEJL");
}
///
@@ -481,7 +495,13 @@ public partial class AdvisorActivityCreatePage : IDisposable
{
if (string.IsNullOrEmpty(Activity.ActivityTypeEnum) && !ReportClosed)
{
- Toast.ShowWarning("Aktivitet type kan ikke være tom");
+ Toaster.ShowWarning("Aktivitet type kan ikke være tom");
+ PoFormInvalid = true;
+ return;
+ }
+
+ if (Company.CountryCode.ToLower() == "se" && VatUtils.SanitizeVatNumber(Activity.VatNumber).Length < 10)
+ {
PoFormInvalid = true;
return;
}
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
index 93244270..e92f3a3a 100644
--- a/Wonky.Client/wwwroot/appsettings.json
+++ b/Wonky.Client/wwwroot/appsettings.json
@@ -1,13 +1,13 @@
{
"appInfo": {
"name": "Wonky Online",
- "version": "0.103.xxx",
+ "version": "0.103.1",
"rc": true,
"sandBox": false,
"image": "grumpy-coder.png"
},
"apiConfig": {
- "baseUrl": "https://dev.innotec.dk",
+ "baseUrl": "https://zeta.innotec.dk",
"catalog": "api/v2/catalog/country",
"crmCustomers": "api/v2/crm/companies",
"crmInventoryExt": "history/inventory",