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")]
@page "/companies/{CompanyId}"
@if (Working)
{
<LoaderThreeDots />
}
@if (!string.IsNullOrWhiteSpace(Company.Account))
{
@if (!string.IsNullOrWhiteSpace(Company.Blocked))

View file

@ -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<ContactDto> 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;
}
/// <summary>
/// Change enable activity state
/// </summary>
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
}
/// <summary>
/// Update CRM data (
/// Update CRM data
/// </summary>
/// <returns>true/false</returns>
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;
}
/// <summary>
@ -215,12 +231,17 @@ public partial class CrmCompanyViewPage : IDisposable
/// <returns></returns>
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;
}
/// <summary>
@ -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;
}
/// <summary>