wip
This commit is contained in:
parent
b74af73886
commit
102371306d
6 changed files with 105 additions and 92 deletions
|
@ -101,15 +101,11 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
_formContext = new EditContext(_activity);
|
||||
_formContext.OnFieldChanged += ContextHandleFieldChanged!;
|
||||
_formContext.OnValidationStateChanged += ContextValidationChanged!;
|
||||
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
_userPref = await PreferenceService.GetPreference();
|
||||
_salesRep = await UserInfo.GetUserInfo();
|
||||
|
||||
_company = await CompanyRepo.GetCompanyById(CompanyId);
|
||||
|
||||
if (_company.Account.StartsWith("KANVAS"))
|
||||
{
|
||||
_kanvas = true;
|
||||
|
@ -125,20 +121,17 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
// _company has shut down
|
||||
_activity.OrderMessage = "BEMÆRK: CVR nummer er ophørt.";
|
||||
}
|
||||
|
||||
_activity.ActivityStatusEnum = "noSale";
|
||||
// decide if new or recall
|
||||
_activity.ActivityVisitEnum = _company.Account.StartsWith("NY")
|
||||
? "new"
|
||||
: "recall";
|
||||
|
||||
// if (string.IsNullOrWhiteSpace(_company.Segment) && _salesRep.CountryCode.ToLower() == "dk")
|
||||
// {
|
||||
// Toaster.ShowError("Der mangler information om Segment. Ret kunde segment, gem erp data og prøv igen.");
|
||||
// // Navigator.NavigateTo($"/advisor/customers/{CompanyId}");
|
||||
// }
|
||||
}
|
||||
|
||||
// Populate base activity information
|
||||
_activity.Account = _company.Account;
|
||||
_activity.Address1 = _company.Address1;
|
||||
|
@ -162,7 +155,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
_activity.SalesRepId = _salesRep.UserId;
|
||||
_activity.Segment = _company.Segment;
|
||||
_activity.ZipCode = _company.ZipCode;
|
||||
|
||||
/*
|
||||
* debug logging
|
||||
*/
|
||||
|
@ -175,7 +167,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
SelectedDate = string.IsNullOrWhiteSpace(_userPref.WorkDate)
|
||||
? DateTime.Now
|
||||
: DateTime.Parse(_userPref.WorkDate);
|
||||
|
||||
// 2023-08-14 - reject orders for future dates
|
||||
if (SelectedDate.Date > DateTime.Now.Date)
|
||||
{
|
||||
|
@ -183,10 +174,8 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
SelectedDate = DateTime.Now;
|
||||
await PreferenceService.SetWorkDate(SelectedDate);
|
||||
}
|
||||
|
||||
// raise flag if report is closed
|
||||
ReportClosed = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||
|
||||
// Lines may already have been added from the company inventory page
|
||||
if (DraftProvider.Draft.DraftType == "order")
|
||||
{
|
||||
|
@ -195,18 +184,14 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
{
|
||||
_activity.ActivityTypeEnum = "onSite";
|
||||
}
|
||||
|
||||
_activity.ActivityStatusEnum = "order";
|
||||
_formInvalid = false;
|
||||
}
|
||||
|
||||
if (_salesRep.CountryCode.ToLower() == "se")
|
||||
{
|
||||
await TestOrgNumber();
|
||||
}
|
||||
|
||||
Working = false;
|
||||
|
||||
// Ask for confirmation of date
|
||||
Logger.LogDebug("Preferences.DateConfirmed => {}", _userPref.DateConfirmed);
|
||||
if (!_userPref.DateConfirmed)
|
||||
|
@ -221,7 +206,9 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (_kanvas)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (firstRender)
|
||||
{
|
||||
if (!_company.Account.StartsWith("NY"))
|
||||
|
@ -244,7 +231,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
{
|
||||
Toaster.ShowInfo("Afventer svar fra tjenester ...");
|
||||
}
|
||||
|
||||
_disableButtons = true;
|
||||
var newSync = await HistoryRepo.RequestErpSync(CompanyId, _company.HistorySync, force);
|
||||
await Task.Delay(500);
|
||||
|
@ -260,7 +246,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
{
|
||||
Toaster.ShowSuccess("Alle tjenester har svaret.");
|
||||
}
|
||||
|
||||
_disableButtons = false;
|
||||
}
|
||||
|
||||
|
@ -268,43 +253,37 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
private async Task TestOrgNumber()
|
||||
{
|
||||
var result = await OrgService.GetPersonalOrgNumber(_activity.Name);
|
||||
await Task.Delay(100);
|
||||
if (!string.IsNullOrWhiteSpace(result.PersonalId))
|
||||
{
|
||||
// Toaster.ShowSuccess($"PersonId for {result.CompanyName} er fundet til at være {result.PersonalId}");
|
||||
_activity.VatNumber = result.PersonalId;
|
||||
if (result.PersonalId[..6] == _activity.VatNumber)
|
||||
{
|
||||
Logger.LogDebug("search result for {}, {} is {}", _activity.Name, _activity.VatNumber, result.PersonalId);
|
||||
Toaster.ShowSuccess($"PersonId for {result.CompanyName} er fundet til at være {result.PersonalId}");
|
||||
_activity.VatNumber = result.PersonalId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Show _activity Overlay
|
||||
/// </summary>
|
||||
|
||||
private void ShowActivitiesOverlay()
|
||||
{
|
||||
ActivityListOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Show Inventory Overlay
|
||||
/// </summary>
|
||||
private void ShowInventoryOverlay()
|
||||
{
|
||||
InventoryListOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Show Invoice Overlay
|
||||
/// </summary>
|
||||
private void ShowInvoiceOverlay()
|
||||
{
|
||||
InvoiceListOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Show Product Check Overlay
|
||||
/// </summary>
|
||||
private async Task ShowProductCheckOverlay()
|
||||
{
|
||||
// check if new account
|
||||
|
@ -322,18 +301,12 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Show Price Catalog Overlay
|
||||
/// </summary>
|
||||
private void ShowPriceCatalogOverlay()
|
||||
{
|
||||
CatalogOverlay.Show();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Show Product Price History Overlay
|
||||
/// </summary>
|
||||
private void ShowPriceHistoryOverlay()
|
||||
{
|
||||
if (ShowItem)
|
||||
|
@ -343,10 +316,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Price Catalog Overlay Callback
|
||||
/// </summary>
|
||||
/// <param name="selectedItem"></param>
|
||||
private async Task PriceCatalogOverlayCallback(ItemSelect selectedItem)
|
||||
{
|
||||
// get selected item
|
||||
|
@ -368,7 +337,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Price = price.ToString("N2", CultureInfo.InvariantCulture);
|
||||
StateHasChanged();
|
||||
}
|
||||
|
@ -391,7 +359,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
item.Check = false;
|
||||
}
|
||||
await DrawerService.StoreInventoryDrawerAsync(CompanyId, _inventoryDrawer);
|
||||
|
||||
await CreateActivity();
|
||||
}
|
||||
|
||||
|
@ -422,7 +389,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
switch (_kanvas)
|
||||
{
|
||||
/*
|
||||
|
@ -438,7 +404,6 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
Toaster.ShowError("Firma registreringsnummer er ikke korrekt.");
|
||||
return;
|
||||
}
|
||||
|
||||
switch (_activity.ActivityStatusEnum)
|
||||
{
|
||||
/*
|
||||
|
@ -541,44 +506,38 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Toggle Delivery Address Input
|
||||
/// </summary>
|
||||
private void ToggleDeliveryAddress()
|
||||
{
|
||||
_hideDeliveryAddress = !_hideDeliveryAddress;
|
||||
}
|
||||
|
||||
|
||||
// /// <summary>
|
||||
// /// Show Incomplete Organization Number Warning
|
||||
// /// </summary>
|
||||
// private async Task ShowOrgWarning()
|
||||
// {
|
||||
// if (_kanvas)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
// // if (OrgWarning)
|
||||
// // {
|
||||
// // return;
|
||||
// // }
|
||||
// // OrgWarning = true;
|
||||
// if (_company.CountryCode.ToLower() == "se"
|
||||
// && Utils.StringToDigits(_activity.VatNumber).Length < 10
|
||||
// && _activity.ActivityStatusEnum == "order")
|
||||
// {
|
||||
// // Toaster.ShowWarning("Org nummer er ufuldstændig. Skal opdateres før bestilling kan sendes.");
|
||||
// // Toaster.ShowInfo("Vent mens vi soger at finde de manglende cifre ...");
|
||||
// var result = await OrgService.GetPersonalOrgNumber(_activity.Name);
|
||||
// if (!string.IsNullOrWhiteSpace(result.PersonalId))
|
||||
// {
|
||||
// _activity.VatNumber = result.PersonalId;
|
||||
// Toaster.ShowSuccess($"Org nummer for {result.CompanyName} er fundet at være {result.PersonalId}.");
|
||||
// }
|
||||
// }
|
||||
// // OrgWarning = false;
|
||||
// }
|
||||
private async Task ShowOrgWarning()
|
||||
{
|
||||
if (_kanvas)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// if (OrgWarning)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
// OrgWarning = true;
|
||||
if (_company.CountryCode.ToLower() == "se"
|
||||
&& Utils.StringToDigits(_activity.VatNumber).Length < 10
|
||||
&& _activity.ActivityStatusEnum == "order")
|
||||
{
|
||||
// Toaster.ShowWarning("Org nummer er ufuldstændig. Skal opdateres før bestilling kan sendes.");
|
||||
// Toaster.ShowInfo("Vent mens vi soger at finde de manglende cifre ...");
|
||||
var result = await OrgService.GetPersonalOrgNumber(_activity.Name);
|
||||
if (!string.IsNullOrWhiteSpace(result.PersonalId))
|
||||
{
|
||||
_activity.VatNumber = result.PersonalId;
|
||||
Toaster.ShowSuccess($"Org nummer for {result.CompanyName} er fundet at være {result.PersonalId}.");
|
||||
}
|
||||
}
|
||||
// OrgWarning = false;
|
||||
}
|
||||
|
||||
|
||||
private async Task DeleteDraft()
|
||||
|
|
|
@ -24,8 +24,18 @@
|
|||
|
||||
<div class="card">
|
||||
<div class="card-header bg-dark text-white">
|
||||
<div class="mt-3 h3 card-title">
|
||||
Sælger Oversigt @CountryName
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="mt-3 h3 card-title">
|
||||
Sælger Oversigt @CountryName
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-5 text-end">
|
||||
<button class="btn btn-secondary" @onclick="@ToggleShowAll">@_buttonText</button>
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
|
|
@ -35,22 +35,49 @@ public partial class OfficeAdvisorListPage :IDisposable
|
|||
|
||||
// #############################################################
|
||||
private List<UserInfoListView> SalesReps { get; set; } = new();
|
||||
private List<UserInfoListView> _advisors = new();
|
||||
private bool Working { get; set; } = true;
|
||||
private string CountryName { get; set; } = "";
|
||||
private string _buttonText = "";
|
||||
private bool _showAll;
|
||||
private int _active;
|
||||
private int _all;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
CountryName = Utils.CountryName(CountryCode);
|
||||
var AdvisorList = await UserRepo.GetUsers("Advisor");
|
||||
SalesReps = AdvisorList
|
||||
_advisors = await UserRepo.GetUsers("Advisor");
|
||||
_all = _advisors.Count;
|
||||
_active = _advisors.Count(x => !x.LockoutEnabled);
|
||||
_buttonText = $"Vis Alle ({_all})";
|
||||
SalesReps = _advisors
|
||||
.Where(x => string.Equals(x.CountryCode, CountryCode, StringComparison.InvariantCultureIgnoreCase))
|
||||
.Where(x => !x.LockoutEnabled)
|
||||
.OrderBy(x => x.FullName)
|
||||
.ToList();
|
||||
Working = false;
|
||||
}
|
||||
|
||||
|
||||
private void ToggleShowAll()
|
||||
{
|
||||
_showAll = !_showAll;
|
||||
if (_showAll)
|
||||
{
|
||||
SalesReps = _advisors.Where(x => string.Equals(x.CountryCode, CountryCode, StringComparison.InvariantCultureIgnoreCase))
|
||||
.OrderBy(x => x.FullName)
|
||||
.ToList();
|
||||
_buttonText = $"Vis Aktive ({_active})";
|
||||
return;
|
||||
}
|
||||
SalesReps = _advisors
|
||||
.Where(x => string.Equals(x.CountryCode, CountryCode, StringComparison.InvariantCultureIgnoreCase))
|
||||
.Where(x => !x.LockoutEnabled)
|
||||
.OrderBy(x => x.FullName)
|
||||
.ToList();
|
||||
_buttonText = $"Vis Alle ({_all})";
|
||||
}
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
|
|
|
@ -21,10 +21,11 @@
|
|||
|
||||
<PageTitle>System Bruger Oversigt</PageTitle>
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<div class="col-sm-6">
|
||||
<h3>System Bruger Oversigt</h3>
|
||||
</div>
|
||||
<div class="col-sm-3 text-end">
|
||||
<div class="col-sm-5 text-end">
|
||||
<button class="btn btn-secondary" @onclick="@ShowLocked">@_showLockedCaption</button>
|
||||
<a class="btn btn-primary" href="/system/users/create"><i class="bi-plus-lg"></i>Opret bruger</a>
|
||||
</div>
|
||||
<div class="col-sm-1">
|
||||
|
@ -57,9 +58,9 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
@if (UserList.Any())
|
||||
@if (DisplayList.Any())
|
||||
{
|
||||
foreach (var user in UserList)
|
||||
foreach (var user in DisplayList)
|
||||
{
|
||||
<a class="list-group-item list-group-item-action" href="/system/users/@user.UserId">
|
||||
<div class="row">
|
||||
|
|
|
@ -32,7 +32,10 @@ public partial class SystemUserListPage : IDisposable
|
|||
private List<UserInfoListView> UserList { get; set; } = new();
|
||||
private List<UserInfoListView> DisplayList { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
|
||||
private bool _showLocked;
|
||||
private string _showLockedCaption = "";
|
||||
private int _activeUsers;
|
||||
private int _allUsers;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
@ -40,16 +43,29 @@ public partial class SystemUserListPage : IDisposable
|
|||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
UserList = await UserRepo.GetUsers();
|
||||
_allUsers = UserList.Count;
|
||||
_activeUsers = UserList.Count(x => !x.LockoutEnabled);
|
||||
if (UserList.Any())
|
||||
{
|
||||
UserList = UserList.Where(x => !x.LockoutEnabled).ToList();
|
||||
DisplayList = UserList.Where(x => !x.LockoutEnabled).ToList();
|
||||
}
|
||||
|
||||
DisplayList = UserList;
|
||||
|
||||
_showLockedCaption = $"Vis Alle ({_allUsers})";
|
||||
Working = false;
|
||||
}
|
||||
|
||||
private void ShowLocked()
|
||||
{
|
||||
_showLocked = !_showLocked;
|
||||
if (_showLocked)
|
||||
{
|
||||
DisplayList = UserList;
|
||||
_showLockedCaption = $"Vis aktive ({_activeUsers})";
|
||||
return;
|
||||
}
|
||||
_showLockedCaption = $"Vis Alle ({UserList.Count})";
|
||||
DisplayList = UserList.Where(x => !x.LockoutEnabled).ToList();
|
||||
|
||||
}
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"appInfo": {
|
||||
"name": "Wonky Online",
|
||||
"version": "232.0",
|
||||
"version": "234.0",
|
||||
"rc": true,
|
||||
"sandBox": true,
|
||||
"image": "grumpy-coder.png",
|
||||
|
|
Loading…
Reference in a new issue