documentation

This commit is contained in:
Frede Hundewadt 2022-11-23 12:00:53 +01:00
parent fd3d9038e0
commit 666b9b0df3
2 changed files with 37 additions and 9 deletions

View file

@ -21,6 +21,10 @@
@attribute [Authorize(Roles = "Advisor")] @attribute [Authorize(Roles = "Advisor")]
@page "/companies/{CompanyId}" @page "/companies/{CompanyId}"
@if (Working)
{
<LoaderThreeDots />
}
@if (!string.IsNullOrWhiteSpace(Company.Account)) @if (!string.IsNullOrWhiteSpace(Company.Account))
{ {
@if (!string.IsNullOrWhiteSpace(Company.Blocked)) @if (!string.IsNullOrWhiteSpace(Company.Blocked))

View file

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