diff --git a/Wonky.Client/Pages/CrmCompanyViewPage.razor b/Wonky.Client/Pages/CrmCompanyViewPage.razor
index b660e7be..f80fe275 100644
--- a/Wonky.Client/Pages/CrmCompanyViewPage.razor
+++ b/Wonky.Client/Pages/CrmCompanyViewPage.razor
@@ -21,6 +21,10 @@
@attribute [Authorize(Roles = "Advisor")]
@page "/companies/{CompanyId}"
+@if (Working)
+{
+
+}
@if (!string.IsNullOrWhiteSpace(Company.Account))
{
@if (!string.IsNullOrWhiteSpace(Company.Blocked))
diff --git a/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs b/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs
index 166de1c6..f4025592 100644
--- a/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs
+++ b/Wonky.Client/Pages/CrmCompanyViewPage.razor.cs
@@ -57,7 +57,7 @@ public partial class CrmCompanyViewPage : IDisposable
private string VisitState { get; set; } = "the-ugly";
private int EnableActivity { get; set; } = 1;
private string ActionLink { get; set; } = "";
- private bool Working { get; set; }
+ private bool Working { get; set; } = true;
private bool countryIsDk { get; set; } = true;
private List Contacts { get; set; } = new();
private VatLookupDkModal VatLookupPopup { get; set; } = new();
@@ -83,23 +83,27 @@ public partial class CrmCompanyViewPage : IDisposable
if (Company.Account == "NY" || string.IsNullOrWhiteSpace(Company.Account))
EnableActivity = 1;
+ // prepare address for lookup
if (countryIsDk)
- CompanyVatAddress = PrepareVatAddress(Company);
+ CompanyVatAddress = PrepareVatAddress(Company);
+ // visit interval init
if (Company.Interval == 0)
Company.Interval = 8;
-
+ // visit date init
LastVisit = DateTime.Parse(Company.LastVisit);
NextVisit = DateTime.Parse(Company.NextVisit);
-
+ // if not previous visit is registered - force last visit date to 2020
if (LastVisit.Year < 2020)
LastVisit = DateTime.Parse("2020-01-01");
-
+ // set next visit according to last visit and interval
if (!Company.ValidDateSpan())
NextVisit = LastVisit.AddDays(Company.Interval * 7);
-
+ // display urgency of next visit
VisitState = Utils.GetVisitState($"{NextVisit:yyyy-MM-dd}");
+ // action link passed to activity button component
ActionLink = $"/companies/{CompanyId}/activities/new"; // used when drawing visit button
+ // handle company out of business case
if(Company.HasFolded == 1)
{
// this is only used if user has selected to show closed companies
@@ -116,13 +120,22 @@ public partial class CrmCompanyViewPage : IDisposable
// vat state css class
VatState = Company.ValidVat == 1 ? "the-good" : "no-vat"; // assign css class
}
+ // initialize form context
ErpContext = new EditContext(Company);
+ // assign event handlers
ErpContext.OnFieldChanged += HandleFieldChanged;
ErpContext.OnValidationStateChanged += ValidationChanged;
+ // ensure crm has been synced with erp
await SyncCompanyHistory();
+ // load contacts
Contacts = await ContactRepo.GetContacts(CompanyId);
+ // remove loading image
+ Working = false;
}
+ ///
+ /// Change enable activity state
+ ///
private void ForceActivity()
{
EnableActivity = EnableActivity == 0 ? 1 : 0;
@@ -136,8 +149,7 @@ public partial class CrmCompanyViewPage : IDisposable
private async Task SaveContactCallback(ContactDto contact)
{
- Console.WriteLine(JsonSerializer.Serialize(contact));
-
+ Logger.LogDebug("CompanyView => SaveContactCallback <= {}", JsonSerializer.Serialize(contact));
if (string.IsNullOrWhiteSpace(contact.ContactId))
{
Console.WriteLine("create");
@@ -193,11 +205,14 @@ public partial class CrmCompanyViewPage : IDisposable
}
///
- /// Update CRM data (
+ /// Update CRM data
///
/// true/false
private async Task UpdateCrmData()
{
+ if (Working)
+ return;
+ Working = true;
Toaster.ShowInfo("Vent venligst ...", "Opdaterer CRM data");
Company.LastVisit = $"{LastVisit:yyyy-MM-dd}";
Company.NextVisit = $"{NextVisit:yyyy-MM-dd}";
@@ -207,6 +222,7 @@ public partial class CrmCompanyViewPage : IDisposable
{
Company = result;
}
+ Working = false;
}
///
@@ -215,12 +231,17 @@ public partial class CrmCompanyViewPage : IDisposable
///
private async Task UpdateErpData()
{
+ if (Working)
+ return;
+ Working = true;
Toaster.ShowInfo("Vent venligst ...", "Opdaterer Erp data");
var result = await CompanyRepo.UpdateErpData(CompanyId, Company);
if (!string.IsNullOrWhiteSpace(result.Name))
{
Company = result;
}
+
+ Working = false;
}
///
@@ -234,12 +255,15 @@ public partial class CrmCompanyViewPage : IDisposable
{
Toaster.ShowError($"Moms Nummer ugyldigt");
}
+ Working = false;
Toaster.ShowInfo("Vent venligst ...", "OPDATERER MOMS NUMMER");
var result = await CompanyRepo.UpdateCompanyVat(CompanyId, Company.VatNumber);
if (!string.IsNullOrWhiteSpace(result.Name))
{
Company = result;
}
+
+ Working = false;
}
///