remove logging - invert if
remove unused imports remove unused variables refactor namespace minimize the number of visible toasts bump CSS file name version
This commit is contained in:
parent
79ec577930
commit
1afb245c7c
7 changed files with 148 additions and 400 deletions
|
@ -53,18 +53,15 @@ public class CabinetDrawerService : ICabinetDrawerService
|
||||||
{
|
{
|
||||||
var drawer = await _asyncStorageService
|
var drawer = await _asyncStorageService
|
||||||
.GetItemAsync<ActivityDrawer>($"{companyId}.{ActivityDrawer.Label}");
|
.GetItemAsync<ActivityDrawer>($"{companyId}.{ActivityDrawer.Label}");
|
||||||
if (drawer == null) force = true;
|
if (drawer == null) force = true;
|
||||||
if (force)
|
if (!force) return drawer ?? new ActivityDrawer();
|
||||||
|
var result = await _activityRepo.GetCustomerActivities(companyId);
|
||||||
|
drawer = new ActivityDrawer
|
||||||
{
|
{
|
||||||
var result = await _activityRepo.GetCustomerActivities(companyId);
|
LastDateModified = DateTime.Today,
|
||||||
drawer = new ActivityDrawer
|
Content = result
|
||||||
{
|
};
|
||||||
LastDateModified = DateTime.Today,
|
await StoreActivityDrawerAsync(companyId, drawer);
|
||||||
Content = result
|
|
||||||
};
|
|
||||||
await StoreActivityDrawerAsync(companyId, drawer);
|
|
||||||
}
|
|
||||||
_logger.LogDebug("ActivityDrawer {}", JsonSerializer.Serialize(drawer, _options));
|
|
||||||
return drawer ?? new ActivityDrawer();
|
return drawer ?? new ActivityDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,17 +78,14 @@ public class CabinetDrawerService : ICabinetDrawerService
|
||||||
.GetItemAsync<CatalogDrawer>($"{countryCode}.{CatalogDrawer.Label}");
|
.GetItemAsync<CatalogDrawer>($"{countryCode}.{CatalogDrawer.Label}");
|
||||||
|
|
||||||
if (drawer == null) force = true;
|
if (drawer == null) force = true;
|
||||||
if (force)
|
if (!force) return drawer ?? new CatalogDrawer();
|
||||||
|
var result = await _catalogRepo.GetPriceList(countryCode);
|
||||||
|
drawer = new CatalogDrawer
|
||||||
{
|
{
|
||||||
var result = await _catalogRepo.GetPriceList(countryCode);
|
LastDateModified = DateTime.Today,
|
||||||
drawer = new CatalogDrawer
|
Content = result
|
||||||
{
|
};
|
||||||
LastDateModified = DateTime.Today,
|
await StoreCatalogDrawerAsync(countryCode, drawer);
|
||||||
Content = result
|
|
||||||
};
|
|
||||||
await StoreCatalogDrawerAsync(countryCode, drawer);
|
|
||||||
}
|
|
||||||
_logger.LogDebug("CatalogDrawer {}", JsonSerializer.Serialize(drawer, _options));
|
|
||||||
return drawer ?? new CatalogDrawer();
|
return drawer ?? new CatalogDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,17 +102,14 @@ public class CabinetDrawerService : ICabinetDrawerService
|
||||||
.GetItemAsync<InfoDrawer>($"{companyId}.{InfoDrawer.Label}");
|
.GetItemAsync<InfoDrawer>($"{companyId}.{InfoDrawer.Label}");
|
||||||
|
|
||||||
if (drawer == null) force = true;
|
if (drawer == null) force = true;
|
||||||
if (force)
|
if (!force) return drawer ?? new InfoDrawer();
|
||||||
|
var result = await _customerRepo.GetCompanyById(companyId);
|
||||||
|
drawer = new InfoDrawer
|
||||||
{
|
{
|
||||||
var result = await _customerRepo.GetCompanyById(companyId);
|
LastDateModified = DateTime.Today,
|
||||||
drawer = new InfoDrawer
|
Content = result
|
||||||
{
|
};
|
||||||
LastDateModified = DateTime.Today,
|
await StoreInfoDrawerAsync(companyId, drawer);
|
||||||
Content = result
|
|
||||||
};
|
|
||||||
await StoreInfoDrawerAsync(companyId, drawer);
|
|
||||||
}
|
|
||||||
_logger.LogDebug("InfoDrawer {}", JsonSerializer.Serialize(drawer, _options));
|
|
||||||
return drawer ?? new InfoDrawer();
|
return drawer ?? new InfoDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,17 +126,14 @@ public class CabinetDrawerService : ICabinetDrawerService
|
||||||
.GetItemAsync<InventoryDrawer>($"{companyId}.{InventoryDrawer.Label}");
|
.GetItemAsync<InventoryDrawer>($"{companyId}.{InventoryDrawer.Label}");
|
||||||
|
|
||||||
if (drawer == null) force = true;
|
if (drawer == null) force = true;
|
||||||
if (force)
|
if (!force) return drawer ?? new InventoryDrawer();
|
||||||
|
var result = await _historyRepo.GetInventory(companyId);
|
||||||
|
drawer = new InventoryDrawer
|
||||||
{
|
{
|
||||||
var result = await _historyRepo.GetInventory(companyId);
|
LastDateModified = DateTime.Today,
|
||||||
drawer = new InventoryDrawer
|
Content = result
|
||||||
{
|
};
|
||||||
LastDateModified = DateTime.Today,
|
await StoreInventoryDrawerAsync(companyId, drawer);
|
||||||
Content = result
|
|
||||||
};
|
|
||||||
await StoreInventoryDrawerAsync(companyId, drawer);
|
|
||||||
}
|
|
||||||
_logger.LogDebug("InventoryDrawer {}", JsonSerializer.Serialize(drawer, _options));
|
|
||||||
return drawer ?? new InventoryDrawer();
|
return drawer ?? new InventoryDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,18 +149,14 @@ public class CabinetDrawerService : ICabinetDrawerService
|
||||||
var drawer = await _asyncStorageService
|
var drawer = await _asyncStorageService
|
||||||
.GetItemAsync<InvoiceDrawer>($"{companyId}.{InvoiceDrawer.Label}");
|
.GetItemAsync<InvoiceDrawer>($"{companyId}.{InvoiceDrawer.Label}");
|
||||||
if (drawer == null) force = true;
|
if (drawer == null) force = true;
|
||||||
if (force)
|
if (!force) return drawer ?? new InvoiceDrawer();
|
||||||
|
var result = await _historyRepo.GetInvoiceList(companyId);
|
||||||
|
drawer = new InvoiceDrawer
|
||||||
{
|
{
|
||||||
var result = await _historyRepo.GetInvoiceList(companyId);
|
LastDateModified = DateTime.Today,
|
||||||
drawer = new InvoiceDrawer
|
Content = result
|
||||||
{
|
};
|
||||||
LastDateModified = DateTime.Today,
|
await StoreInvoiceDrawerAsync(companyId, drawer);
|
||||||
Content = result
|
|
||||||
};
|
|
||||||
await StoreInvoiceDrawerAsync(companyId, drawer);
|
|
||||||
}
|
|
||||||
_logger.LogDebug("InvoiceDrawer {}", JsonSerializer.Serialize(drawer, _options));
|
|
||||||
|
|
||||||
return drawer ?? new InvoiceDrawer();
|
return drawer ?? new InvoiceDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,26 +173,23 @@ public class CabinetDrawerService : ICabinetDrawerService
|
||||||
.GetItemAsync<StatisticDrawer>($"{companyId}.{StatisticDrawer.Label}");
|
.GetItemAsync<StatisticDrawer>($"{companyId}.{StatisticDrawer.Label}");
|
||||||
|
|
||||||
if (drawer == null) force = true;
|
if (drawer == null) force = true;
|
||||||
if (force)
|
if (!force) return drawer ?? new StatisticDrawer();
|
||||||
|
var result = await _historyRepo.GetProductInvoiceLines(companyId);
|
||||||
|
var content = result.Select(x => new HistoryFilter
|
||||||
{
|
{
|
||||||
var result = await _historyRepo.GetProductInvoiceLines(companyId);
|
DeliveryDate = DateTime.Parse(x.DeliveryDate),
|
||||||
var content = result.Select(x => new HistoryFilter
|
Description = x.Description,
|
||||||
{
|
Discount = x.Discount,
|
||||||
DeliveryDate = DateTime.Parse(x.DeliveryDate),
|
Price = x.Price,
|
||||||
Description = x.Description,
|
Quantity = x.Quantity,
|
||||||
Discount = x.Discount,
|
Sku = x.Sku
|
||||||
Price = x.Price,
|
}).ToList();
|
||||||
Quantity = x.Quantity,
|
drawer = new StatisticDrawer
|
||||||
Sku = x.Sku
|
{
|
||||||
}).ToList();
|
LastDateModified = DateTime.Today,
|
||||||
drawer = new StatisticDrawer
|
Content = content
|
||||||
{
|
};
|
||||||
LastDateModified = DateTime.Today,
|
await StoreStatisticDrawerAsync(companyId, drawer);
|
||||||
Content = content
|
|
||||||
};
|
|
||||||
await StoreStatisticDrawerAsync(companyId, drawer);
|
|
||||||
}
|
|
||||||
_logger.LogDebug("StatisticDrawer {}", JsonSerializer.Serialize(drawer, _options));
|
|
||||||
return drawer ?? new StatisticDrawer();
|
return drawer ?? new StatisticDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,6 @@
|
||||||
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Blazored.LocalStorage;
|
using Blazored.LocalStorage;
|
||||||
using Microsoft.AspNetCore.DataProtection.KeyManagement;
|
|
||||||
using Wonky.Client.Models;
|
|
||||||
using Wonky.Entity.DTO;
|
using Wonky.Entity.DTO;
|
||||||
|
|
||||||
namespace Wonky.Client.Local.Services;
|
namespace Wonky.Client.Local.Services;
|
||||||
|
|
|
@ -15,7 +15,9 @@
|
||||||
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Blazored.LocalStorage;
|
using Blazored.LocalStorage;
|
||||||
|
using Blazored.Toast;
|
||||||
using Blazored.Toast.Services;
|
using Blazored.Toast.Services;
|
||||||
|
using Blazored.Toast.Configuration;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
using Microsoft.AspNetCore.Components.Forms;
|
using Microsoft.AspNetCore.Components.Forms;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
@ -47,7 +49,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
[Inject] public VatInfoLookupService VatService { get; set; }
|
[Inject] public VatInfoLookupService VatService { get; set; }
|
||||||
[Inject] public ILocalStorageService Storage { get; set; }
|
[Inject] public ILocalStorageService Storage { get; set; }
|
||||||
[Inject] public IUserInfoService UserInfoService { get; set; }
|
[Inject] public IUserInfoService UserInfoService { get; set; }
|
||||||
[Inject] public IOptions<AppInfo?>? AppInfo { get; set; }
|
[Inject] public IOptions<AppInfo>? AppInfo { get; set; }
|
||||||
[Inject] public ICabinetDrawerService DrawerService { get; set; }
|
[Inject] public ICabinetDrawerService DrawerService { get; set; }
|
||||||
|
|
||||||
// ###########################################################################
|
// ###########################################################################
|
||||||
|
@ -65,8 +67,8 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
private List<ContactDto> _contacts = new();
|
private List<ContactDto> _contacts = new();
|
||||||
private string VatState { get; set; } = "the-ugly";
|
private string VatState { get; set; } = "the-ugly";
|
||||||
private bool _validVat;
|
private bool _validVat;
|
||||||
private bool _hasFolded;
|
// private bool _hasFolded;
|
||||||
private string _currentVat = "";
|
// private string _currentVat = "";
|
||||||
private string _countryCode = "dk";
|
private string _countryCode = "dk";
|
||||||
private string _visitStateCss = "the-ugly";
|
private string _visitStateCss = "the-ugly";
|
||||||
private int _enableActivity = 1;
|
private int _enableActivity = 1;
|
||||||
|
@ -81,14 +83,16 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
private string _invoiceLink = "";
|
private string _invoiceLink = "";
|
||||||
private string _newActivityLink = "";
|
private string _newActivityLink = "";
|
||||||
private int _enableLink = 1;
|
private int _enableLink = 1;
|
||||||
private ActivityDrawer _activityDrawer = new();
|
// private ActivityDrawer _activityDrawer = new();
|
||||||
private InventoryDrawer _inventoryDrawer = new();
|
// private InventoryDrawer _inventoryDrawer = new();
|
||||||
private InvoiceDrawer _invoiceDrawer = new();
|
// private InvoiceDrawer _invoiceDrawer = new();
|
||||||
private StatisticDrawer _statisticDrawer = new();
|
// private StatisticDrawer _statisticDrawer = new();
|
||||||
private UserManagerEditView _userInfo = new();
|
private UserManagerEditView _userInfo = new();
|
||||||
private InfoDrawer _infoDrawer = new();
|
private InfoDrawer _infoDrawer = new();
|
||||||
private CompanyDto _company = new();
|
private CompanyDto _company = new();
|
||||||
private string _companyId = "";
|
// private string _companyId = "";
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -153,7 +157,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
* toggle view button text
|
* toggle view button text
|
||||||
*/
|
*/
|
||||||
_toggleButtonText = _company.IsHidden == 0 ? "Udelad kunde i oversigt" : "Brug Normal Visning";
|
_toggleButtonText = _company.IsHidden == 0 ? "Udelad kunde i oversigt" : "Brug Normal Visning";
|
||||||
_currentVat = _company.VatNumber;
|
// _currentVat = _company.VatNumber;
|
||||||
_company.CountryCode = _userInfo.CountryCode.ToLower();
|
_company.CountryCode = _userInfo.CountryCode.ToLower();
|
||||||
/*
|
/*
|
||||||
* visit interval init
|
* visit interval init
|
||||||
|
@ -193,7 +197,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
/*
|
/*
|
||||||
* this is only used if user has selected to show closed companies
|
* this is only used if user has selected to show closed companies
|
||||||
*/
|
*/
|
||||||
_hasFolded = true;
|
// _hasFolded = true;
|
||||||
VatState = "the-dead";
|
VatState = "the-dead";
|
||||||
_visitStateCss = "the-dead";
|
_visitStateCss = "the-dead";
|
||||||
}
|
}
|
||||||
|
@ -206,14 +210,11 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
_validVat = _company.ValidVat == 1; // true/false flag set if InfoDrawer.Company has a valid vatNumber
|
_validVat = _company.ValidVat == 1; // true/false flag set if InfoDrawer.Company has a valid vatNumber
|
||||||
VatState = _company.ValidVat == 1 ? "the-good" : "no-vat"; // assign css class
|
VatState = _company.ValidVat == 1 ? "the-good" : "no-vat"; // assign css class
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* create search address from address
|
|
||||||
*/
|
|
||||||
if (_countryIsDk)
|
if (_countryIsDk)
|
||||||
{
|
{
|
||||||
_companyVatAddress = PrepareVatAddress(_company);
|
_companyVatAddress = PrepareVatAddress(_company);
|
||||||
}
|
}
|
||||||
await GetContacts(CompanyId);
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* remove loading image
|
* remove loading image
|
||||||
|
@ -221,39 +222,43 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
_working = false;
|
_working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(_companyId))
|
if (firstRender)
|
||||||
{
|
{
|
||||||
_companyId = CompanyId;
|
await GetContacts(CompanyId);
|
||||||
_ = await HistoryRepo.RequestErpSync(CompanyId, _company.HistorySync, false);
|
_ = await HistoryRepo.RequestErpSync(CompanyId, _company.HistorySync, false);
|
||||||
_invoiceDrawer = await DrawerService.GetInvoiceDrawerAsync(CompanyId, true);
|
_ = await DrawerService.GetInvoiceDrawerAsync(CompanyId);
|
||||||
_inventoryDrawer = await DrawerService.GetInventoryDrawerAsync(CompanyId, true);
|
_ = await DrawerService.GetInventoryDrawerAsync(CompanyId);
|
||||||
_activityDrawer = await DrawerService.GetActivityDrawerAsync(CompanyId, true);
|
_ = await DrawerService.GetActivityDrawerAsync(CompanyId);
|
||||||
_statisticDrawer = await DrawerService.GetStatisticDrawerAsync(CompanyId, true);
|
_ = await DrawerService.GetStatisticDrawerAsync(CompanyId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task ReloadHistory()
|
private async Task ReloadHistory()
|
||||||
{
|
{
|
||||||
|
Toaster.ShowInfo("Afventer svar fra tjenester ...");
|
||||||
_enableLink = 0;
|
_enableLink = 0;
|
||||||
_enableActivity = 0;
|
_enableActivity = 0;
|
||||||
|
var newSync = await HistoryRepo.RequestErpSync(CompanyId, _company.HistorySync, true);
|
||||||
Toaster.ShowWarning("Arbejder på sagen ...");
|
|
||||||
var newSync = await HistoryRepo.RequestErpSync(CompanyId, _company.HistorySync, false);
|
|
||||||
if (!string.IsNullOrWhiteSpace(newSync))
|
if (!string.IsNullOrWhiteSpace(newSync))
|
||||||
{
|
{
|
||||||
_infoDrawer = await DrawerService.GetInfoDrawerAsync(CompanyId, true);
|
_infoDrawer = await DrawerService.GetInfoDrawerAsync(CompanyId, true);
|
||||||
_invoiceDrawer = await DrawerService.GetInvoiceDrawerAsync(CompanyId, true);
|
_company = _infoDrawer.Content;
|
||||||
_inventoryDrawer = await DrawerService.GetInventoryDrawerAsync(CompanyId, true);
|
_ = await DrawerService.GetInvoiceDrawerAsync(CompanyId, true);
|
||||||
_activityDrawer = await DrawerService.GetActivityDrawerAsync(CompanyId, true);
|
_ = await DrawerService.GetInventoryDrawerAsync(CompanyId, true);
|
||||||
_statisticDrawer = await DrawerService.GetStatisticDrawerAsync(CompanyId, true);
|
_ = await DrawerService.GetActivityDrawerAsync(CompanyId, true);
|
||||||
|
_ = await DrawerService.GetStatisticDrawerAsync(CompanyId, true);
|
||||||
}
|
}
|
||||||
Toaster.ShowSuccess("Data er snart klar ....");
|
|
||||||
_enableLink = 1;
|
_enableLink = 1;
|
||||||
_enableActivity = _company.ValidVat;
|
_enableActivity = _company.ValidVat;
|
||||||
|
// StateHasChanged();
|
||||||
|
Toaster.ShowSuccess("Alle tjenester har svaret.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ToggleErpEdit()
|
private void ToggleErpEdit()
|
||||||
{
|
{
|
||||||
_erpEditDisabled = !_erpEditDisabled;
|
_erpEditDisabled = !_erpEditDisabled;
|
||||||
|
@ -280,6 +285,9 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Request contacts for company
|
||||||
|
*/
|
||||||
private async Task GetContacts(string companyId)
|
private async Task GetContacts(string companyId)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -293,12 +301,18 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Show vat number lookup form only danish companies
|
||||||
|
*/
|
||||||
private void OpenVatLookupModal()
|
private void OpenVatLookupModal()
|
||||||
{
|
{
|
||||||
_vatLookupPopup.Show();
|
_vatLookupPopup.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Callback from vat lookup overlay with registration infomration
|
||||||
|
*/
|
||||||
private void SelectedCompanyCallback(VirkRegInfo regInfo)
|
private void SelectedCompanyCallback(VirkRegInfo regInfo)
|
||||||
{
|
{
|
||||||
_validVat = regInfo.States[0].State.ToLower() == "normal";
|
_validVat = regInfo.States[0].State.ToLower() == "normal";
|
||||||
|
@ -320,6 +334,9 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Show contact overlay
|
||||||
|
*/
|
||||||
private void OpenContactPopup(ContactDto contact)
|
private void OpenContactPopup(ContactDto contact)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -332,10 +349,11 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
_contactViewPopup.Show();
|
_contactViewPopup.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Create request to update contact information
|
/*
|
||||||
/// </summary>
|
* Callback from contact overlay
|
||||||
/// <param name="contact"></param>
|
* Create / Update contact depending on contactId present
|
||||||
|
*/
|
||||||
private async Task WriteContactCallback(ContactDto contact)
|
private async Task WriteContactCallback(ContactDto contact)
|
||||||
{
|
{
|
||||||
if (_working)
|
if (_working)
|
||||||
|
@ -369,10 +387,10 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
_working = false;
|
_working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Delete contact information
|
/*
|
||||||
/// </summary>
|
* Delete contact callback
|
||||||
/// <param name="contactId"></param>
|
*/
|
||||||
private async Task DeleteContactCallback(string contactId)
|
private async Task DeleteContactCallback(string contactId)
|
||||||
{
|
{
|
||||||
if (_working)
|
if (_working)
|
||||||
|
@ -393,10 +411,10 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
_working = false;
|
_working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Update CRM data
|
/*
|
||||||
/// </summary>
|
* Execute post requset - updating CRM data (non ERP related)
|
||||||
/// <returns>true/false</returns>
|
*/
|
||||||
private async Task PostCrmData()
|
private async Task PostCrmData()
|
||||||
{
|
{
|
||||||
if (_working)
|
if (_working)
|
||||||
|
@ -417,10 +435,10 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
Toaster.ShowSuccess("Dine CRM data er opdateret.");
|
Toaster.ShowSuccess("Dine CRM data er opdateret.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Update ERP data
|
/*
|
||||||
/// </summary>
|
* Execute post requset - updating ERP data (notifying office)
|
||||||
/// <returns></returns>
|
*/
|
||||||
private async Task UpdateErpData()
|
private async Task UpdateErpData()
|
||||||
{
|
{
|
||||||
if (_working)
|
if (_working)
|
||||||
|
@ -439,12 +457,19 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
Toaster.ShowSuccess("ERP data er opdateret. Notifikation til kontoret er sendt.");
|
Toaster.ShowSuccess("ERP data er opdateret. Notifikation til kontoret er sendt.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Update Vat Number
|
/*
|
||||||
/// </summary>
|
* Execute post requset - updating CVR/VAT/MOMS/ORG
|
||||||
/// <returns>true/false</returns>
|
* many names for the same thing
|
||||||
|
* execpt moms is local - VAT is global
|
||||||
|
*/
|
||||||
private async Task UpdateVatNumber()
|
private async Task UpdateVatNumber()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* prevent duped actions
|
||||||
|
*/
|
||||||
|
if (_working)
|
||||||
|
return;
|
||||||
/*
|
/*
|
||||||
* VAT format validation
|
* VAT format validation
|
||||||
*/
|
*/
|
||||||
|
@ -453,9 +478,6 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
Toaster.ShowError($"Moms Nummer ugyldigt");
|
Toaster.ShowError($"Moms Nummer ugyldigt");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_working)
|
|
||||||
return;
|
|
||||||
_working = true;
|
_working = true;
|
||||||
_vatEditDisabled = true;
|
_vatEditDisabled = true;
|
||||||
Toaster.ShowInfo("Vent venligst ...");
|
Toaster.ShowInfo("Vent venligst ...");
|
||||||
|
@ -469,12 +491,12 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
_working = false;
|
_working = false;
|
||||||
Toaster.ShowSuccess("Moms Nr. er opdateret.");
|
Toaster.ShowSuccess("Moms Nr. er opdateret.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/*
|
||||||
/// Prepare vat address from InfoDrawer.Company model
|
* Prepare vat address
|
||||||
/// </summary>
|
* used to lookup danish company
|
||||||
/// <param name="company"></param>
|
*/
|
||||||
/// <returns></returns>
|
|
||||||
private static VatAddress PrepareVatAddress(CompanyDto company)
|
private static VatAddress PrepareVatAddress(CompanyDto company)
|
||||||
{
|
{
|
||||||
var digits = "1234567890".ToCharArray();
|
var digits = "1234567890".ToCharArray();
|
||||||
|
@ -511,19 +533,18 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/*
|
||||||
/// Force enable activity
|
* Force enable activioty - even if company has turned keys and shut down
|
||||||
/// </summary>
|
*/
|
||||||
private void ForceActivity()
|
private void ForceActivity()
|
||||||
{
|
{
|
||||||
_enableActivity = _enableActivity == 0 ? 1 : 0;
|
_enableActivity = _enableActivity == 0 ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Context field change event callback
|
/*
|
||||||
/// </summary>
|
* Input form field change event
|
||||||
/// <param name="sender"></param>
|
*/
|
||||||
/// <param name="e"></param>
|
|
||||||
private void HandleFieldChanged(object? sender, FieldChangedEventArgs? e)
|
private void HandleFieldChanged(object? sender, FieldChangedEventArgs? e)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -544,11 +565,10 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
StateHasChanged();
|
StateHasChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Context validation change event callback
|
/*
|
||||||
/// </summary>
|
* Input form validation process
|
||||||
/// <param name="sender"></param>
|
*/
|
||||||
/// <param name="e"></param>
|
|
||||||
private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
|
private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
|
||||||
{
|
{
|
||||||
_erpContext.OnFieldChanged -= HandleFieldChanged;
|
_erpContext.OnFieldChanged -= HandleFieldChanged;
|
||||||
|
@ -560,9 +580,10 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
_erpContext.OnValidationStateChanged += ValidationChanged!;
|
_erpContext.OnValidationStateChanged += ValidationChanged!;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Dispose
|
/*
|
||||||
/// </summary>
|
* Required IDispose interface implementation
|
||||||
|
*/
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
Interceptor.DisposeEvent();
|
Interceptor.DisposeEvent();
|
||||||
|
|
|
@ -93,7 +93,7 @@ public partial class SystemUserCreatePage : IDisposable
|
||||||
/*
|
/*
|
||||||
* Map form input to a model the backend expects
|
* Map form input to a model the backend expects
|
||||||
*/
|
*/
|
||||||
NewUserDto = Mapper.MapCreateUser(UserForm);
|
NewUserDto = MapUtils.MapCreateUser(UserForm);
|
||||||
/*
|
/*
|
||||||
* Send Post Request
|
* Send Post Request
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
<div class="content d-none d-print-block">
|
<div class="content d-none d-print-block">
|
||||||
@Body
|
@Body
|
||||||
</div>
|
</div>
|
||||||
<BlazoredToasts Position="ToastPosition.TopRight" Timeout="10" />
|
<BlazoredToasts Position="ToastPosition.TopRight" Timeout="5" MaxToastCount="3" ShowProgressBar="true" />
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,252 +0,0 @@
|
||||||
body {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.draft-expires-msg {
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
.busy-signal {
|
|
||||||
float: right;
|
|
||||||
z-index: 100;
|
|
||||||
position: relative;
|
|
||||||
top: 1px;
|
|
||||||
right: 10px;
|
|
||||||
}
|
|
||||||
.workDate {
|
|
||||||
font-variant: small-caps;
|
|
||||||
}
|
|
||||||
|
|
||||||
.action-link-element {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.i-larger {
|
|
||||||
font-size: 1.3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn.btn-edit {
|
|
||||||
color: #030303;
|
|
||||||
background-color: #a2a2ec;
|
|
||||||
}
|
|
||||||
|
|
||||||
html, body {
|
|
||||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,h2:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a, .btn-link {
|
|
||||||
color: #0071c1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*.btn-primary {*/
|
|
||||||
/* color: #fff;*/
|
|
||||||
/* background-color: #1b6ec2;*/
|
|
||||||
/* border-color: #1861ac;*/
|
|
||||||
/*}*/
|
|
||||||
|
|
||||||
.inno {
|
|
||||||
color: #ffaa00;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inno-display {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inno-hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
padding-top: 1.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.valid.modified:not([type=checkbox]) {
|
|
||||||
outline: 1px solid #26b050;
|
|
||||||
}
|
|
||||||
|
|
||||||
.invalid {
|
|
||||||
outline: 1px solid red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.validation-message {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* begin state elements */
|
|
||||||
.state {
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
min-width: 16px;
|
|
||||||
min-height: 16px;
|
|
||||||
}
|
|
||||||
.the-good {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
.the-bad {
|
|
||||||
color: orange;
|
|
||||||
}
|
|
||||||
.the-ugly {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
.the-dead {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
.the-fast {
|
|
||||||
color: orange;
|
|
||||||
}
|
|
||||||
.the-draw {
|
|
||||||
color: mediumpurple;
|
|
||||||
}
|
|
||||||
.the-good-bg {
|
|
||||||
background-color: green;
|
|
||||||
}
|
|
||||||
.the-bad-bg {
|
|
||||||
background-color: orange;
|
|
||||||
}
|
|
||||||
.the-ugly-bg {
|
|
||||||
background-color: red;
|
|
||||||
}
|
|
||||||
.the-draw-bg {
|
|
||||||
background-color: mediumpurple;
|
|
||||||
}
|
|
||||||
.no-vat-bg {
|
|
||||||
background-color: lightskyblue;
|
|
||||||
}
|
|
||||||
.the-dead-bg {
|
|
||||||
background-color: black;
|
|
||||||
}
|
|
||||||
/* end state elements */
|
|
||||||
|
|
||||||
/* led elements */
|
|
||||||
.led-box {
|
|
||||||
height: 24px;
|
|
||||||
width: 24px;
|
|
||||||
margin: auto;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.led-red {
|
|
||||||
margin: 5px;
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
background-color: #F00;
|
|
||||||
border-radius: 50%;
|
|
||||||
box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #441313 0 -1px 9px, rgba(255, 0, 0, 0.5) 0 2px 12px;
|
|
||||||
-webkit-animation: blinkRed 0.5s infinite;
|
|
||||||
-moz-animation: blinkRed 0.5s infinite;
|
|
||||||
-ms-animation: blinkRed 0.5s infinite;
|
|
||||||
-o-animation: blinkRed 0.5s infinite;
|
|
||||||
animation: blinkRed 0.5s infinite;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes blinkRed {
|
|
||||||
from { background-color: #F00; }
|
|
||||||
50% { background-color: #A00; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #441313 0 -1px 9px, rgba(255, 0, 0, 0.5) 0 2px 0;}
|
|
||||||
to { background-color: #F00; }
|
|
||||||
}
|
|
||||||
@-moz-keyframes blinkRed {
|
|
||||||
from { background-color: #F00; }
|
|
||||||
50% { background-color: #A00; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #441313 0 -1px 9px, rgba(255, 0, 0, 0.5) 0 2px 0;}
|
|
||||||
to { background-color: #F00; }
|
|
||||||
}
|
|
||||||
@-ms-keyframes blinkRed {
|
|
||||||
from { background-color: #F00; }
|
|
||||||
50% { background-color: #A00; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #441313 0 -1px 9px, rgba(255, 0, 0, 0.5) 0 2px 0;}
|
|
||||||
to { background-color: #F00; }
|
|
||||||
}
|
|
||||||
@-o-keyframes blinkRed {
|
|
||||||
from { background-color: #F00; }
|
|
||||||
50% { background-color: #A00; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #441313 0 -1px 9px, rgba(255, 0, 0, 0.5) 0 2px 0;}
|
|
||||||
to { background-color: #F00; }
|
|
||||||
}
|
|
||||||
@keyframes blinkRed {
|
|
||||||
from { background-color: #F00; }
|
|
||||||
50% { background-color: #A00; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #441313 0 -1px 9px, rgba(255, 0, 0, 0.5) 0 2px 0;}
|
|
||||||
to { background-color: #F00; }
|
|
||||||
}
|
|
||||||
|
|
||||||
.led-yellow {
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
background-color: #FF0;
|
|
||||||
border-radius: 50%;
|
|
||||||
box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #808002 0 -1px 9px, #FF0 0 2px 12px;
|
|
||||||
-webkit-animation: blinkYellow 1s infinite;
|
|
||||||
-moz-animation: blinkYellow 1s infinite;
|
|
||||||
-ms-animation: blinkYellow 1s infinite;
|
|
||||||
-o-animation: blinkYellow 1s infinite;
|
|
||||||
animation: blinkYellow 1s infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes blinkYellow {
|
|
||||||
from { background-color: #FF0; }
|
|
||||||
50% { background-color: #AA0; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #808002 0 -1px 9px, #FF0 0 2px 0; }
|
|
||||||
to { background-color: #FF0; }
|
|
||||||
}
|
|
||||||
@-moz-keyframes blinkYellow {
|
|
||||||
from { background-color: #FF0; }
|
|
||||||
50% { background-color: #AA0; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #808002 0 -1px 9px, #FF0 0 2px 0; }
|
|
||||||
to { background-color: #FF0; }
|
|
||||||
}
|
|
||||||
@-ms-keyframes blinkYellow {
|
|
||||||
from { background-color: #FF0; }
|
|
||||||
50% { background-color: #AA0; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #808002 0 -1px 9px, #FF0 0 2px 0; }
|
|
||||||
to { background-color: #FF0; }
|
|
||||||
}
|
|
||||||
@-o-keyframes blinkYellow {
|
|
||||||
from { background-color: #FF0; }
|
|
||||||
50% { background-color: #AA0; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #808002 0 -1px 9px, #FF0 0 2px 0; }
|
|
||||||
to { background-color: #FF0; }
|
|
||||||
}
|
|
||||||
@keyframes blinkYellow {
|
|
||||||
from { background-color: #FF0; }
|
|
||||||
50% { background-color: #AA0; box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #808002 0 -1px 9px, #FF0 0 2px 0; }
|
|
||||||
to { background-color: #FF0; }
|
|
||||||
}
|
|
||||||
|
|
||||||
.led-green {
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
background-color: #ABFF00;
|
|
||||||
border-radius: 50%;
|
|
||||||
box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #304701 0 -1px 9px, #89FF00 0 2px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.led-blue {
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
background-color: #24E0FF;
|
|
||||||
border-radius: 50%;
|
|
||||||
box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 7px 1px, inset #006 0 -1px 9px, #3F8CFF 0 2px 14px;
|
|
||||||
}
|
|
||||||
/* end led elements */
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
border-top: 2px solid orange;
|
|
||||||
position: relative;
|
|
||||||
margin-top: -150px;
|
|
||||||
height: 150px;
|
|
||||||
width: 100%;
|
|
||||||
clear: both;
|
|
||||||
padding-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer.version {
|
|
||||||
display: block;
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 0 10px 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.back-to-top {
|
|
||||||
position: fixed;
|
|
||||||
bottom: 25px;
|
|
||||||
right: 25px;
|
|
||||||
display: none;
|
|
||||||
}
|
|
|
@ -14,7 +14,7 @@
|
||||||
<link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet" >
|
<link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet" >
|
||||||
<link href="/bootstrap/css/bootstrap-icons.min.css" rel="stylesheet" >
|
<link href="/bootstrap/css/bootstrap-icons.min.css" rel="stylesheet" >
|
||||||
<link href="/flag-icons/flag-icons.css" rel="stylesheet" >
|
<link href="/flag-icons/flag-icons.css" rel="stylesheet" >
|
||||||
<link href="/css/20230607.css" rel="stylesheet" >
|
<link href="/css/20230614.css" rel="stylesheet" >
|
||||||
<link href="/css/print.css" rel="stylesheet" >
|
<link href="/css/print.css" rel="stylesheet" >
|
||||||
<link href="/Wonky.Client.styles.css" rel="stylesheet" >
|
<link href="/Wonky.Client.styles.css" rel="stylesheet" >
|
||||||
<link href="/_content/Blazored.Toast/blazored-toast.min.css" rel="stylesheet" >
|
<link href="/_content/Blazored.Toast/blazored-toast.min.css" rel="stylesheet" >
|
||||||
|
|
Loading…
Reference in a new issue