FEAT add MapOrgState function

Refactor namespaces related to Advisor endpoints
This commit is contained in:
Frede Hundewadt 2023-06-07 11:00:27 +02:00
parent 278f116e95
commit d319b19539
51 changed files with 161 additions and 147 deletions

View file

@ -60,7 +60,7 @@
<td class="align-middle state">
@if (activity.Lines.Any() && activity.StatusTypeEnum == "Order")
{
<ProcessStateComponent StateClass="@Utils.GetProcessStatus(activity.ProcessStatusEnum)"/>
<ProcessStateComponent StateClass="@Utils.MapProcessStatus(activity.ProcessStatusEnum)"/>
}
</td>
<td class="align-middle font-monospace text-sm-start">@activity.ESalesNumber</td>

View file

@ -21,8 +21,9 @@
<table class="table table-striped">
<thead>
<tr>
<th scope="col">BS</th>
<th scope="col"></th>
<th scope="col"><i class="bi-pin-map"></i></th>
<th scope="col"><i class="bi-info-lg"></i></th>
<th scope="col"><i class="bi-exclamation-lg"></i></th>
<th scope="col">Navn</th>
<th scope="col">Konto</th>
<th scope="col">Tlf</th>
@ -35,7 +36,10 @@
{
<tr @onclick="@(() => { ViewCustomer(company.CompanyId); })" class="action-link-element">
<td class="state align-middle">
<DisplayStateComponent StateClass="@(company.HasFolded == 1 ? "the-dead" : Utils.GetVisitState(company.NextVisit))"/>
<DisplayStateComponent StateClass="@(company.HasFolded == 1 ? "the-dead" : Utils.MapVisitState(company.NextVisit))"/>
</td>
<td class="state align-middle">
<DisplayStateComponent StateClass="@(Utils.MapOrgState(company.ValidVat))"/>
</td>
<td class="align-middle">
@if (!string.IsNullOrWhiteSpace(company.Note))

View file

@ -39,7 +39,7 @@
<div class="col-sm-3 col-md-3 fw-bold">Telefon</div>
<div class="col-sm-3 col-md-3">@company.Phone</div>
<div class="col-sm-3 col-md-3 fw-bold">Besøg</div>
<div class="col-sm-3 col-md-3">@company.LastVisit <DisplayStateComponent StateClass="@(company.HasFolded == 1 ? "the-dead" : Utils.GetVisitState(company.NextVisit))"/></div>
<div class="col-sm-3 col-md-3">@company.LastVisit <DisplayStateComponent StateClass="@(company.HasFolded == 1 ? "the-dead" : Utils.MapVisitState(company.NextVisit))"/></div>
</div>
<div class="row">
<div class="col-sm-3 col-md-3 fw-bold">Adresse</div>

View file

@ -60,7 +60,7 @@
<td class="align-middle state">
@if (activity.Lines.Any() && activity.StatusTypeEnum == "Order")
{
<ProcessStateComponent StateClass="@Utils.GetProcessStatus(activity.ProcessStatusEnum)"/>
<ProcessStateComponent StateClass="@Utils.MapProcessStatus(activity.ProcessStatusEnum)"/>
}
</td>
</tr>

View file

@ -60,7 +60,7 @@
<td class="align-middle state">
@if (activity.Lines.Any() && activity.StatusTypeEnum == "Order")
{
<ProcessStateComponent StateClass="@Utils.GetProcessStatus(activity.ProcessStatusEnum)"/>
<ProcessStateComponent StateClass="@Utils.MapProcessStatus(activity.ProcessStatusEnum)"/>
}
</td>
</tr>

View file

@ -334,9 +334,15 @@ public static class Utils
}
public static string GetVisitState(string dtNextVisit)
public static string MapOrgState(int validVat)
{
if (dtNextVisit is "0001-01-01" or "1970-01-01" or "2010-01-01")
return validVat == 0 ? "no-vat" : "the-good";
}
public static string MapVisitState(string dtNextVisit)
{
if (dtNextVisit is "0001-01-01" or "1970-01-01" or "2010-01-01" or "2020-01-01")
return "the-draw";
if (!DateTime.TryParse(dtNextVisit, out _))
return "the-draw";
@ -350,7 +356,7 @@ public static class Utils
}
public static string GetProcessStatus(string processStatus)
public static string MapProcessStatus(string processStatus)
{
return processStatus.ToLower() switch
{

View file

@ -26,7 +26,7 @@ namespace Wonky.Client.HttpRepository;
/// <summary>
/// Implementing Interface Activity CRM Http repository
/// </summary>
public class CrmActivityRepository : ICrmActivityRepository
public class AdvisorActivityRepository : IAdvisorActivityRepository
{
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
{
@ -34,12 +34,12 @@ public class CrmActivityRepository : ICrmActivityRepository
};
private readonly NavigationManager _navigation;
private readonly ILogger<CrmActivityRepository> _logger;
private readonly ILogger<AdvisorActivityRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _api;
public CrmActivityRepository(HttpClient client,
ILogger<CrmActivityRepository> logger,
public AdvisorActivityRepository(HttpClient client,
ILogger<AdvisorActivityRepository> logger,
NavigationManager navigation, IOptions<ApiConfig> configuration)
{
_client = client;

View file

@ -22,7 +22,7 @@ using Wonky.Entity.DTO;
namespace Wonky.Client.HttpRepository;
public class CrmContactRepository : ICrmContactRepository
public class AdvisorContactRepository : IAdvisorContactRepository
{
private readonly JsonSerializerOptions _options = new ()
{
@ -30,12 +30,12 @@ public class CrmContactRepository : ICrmContactRepository
};
private readonly NavigationManager _navigation;
private ILogger<CrmContactRepository> _logger;
private ILogger<AdvisorContactRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _conf;
public CrmContactRepository(HttpClient client,
ILogger<CrmContactRepository> logger,
public AdvisorContactRepository(HttpClient client,
ILogger<AdvisorContactRepository> logger,
NavigationManager navigation,
IOptions<ApiConfig> apiConfig)
{

View file

@ -22,7 +22,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
public class CrmCustomerHistoryRepository : ICrmCustomerHistoryRepository
public class AdvisorCustomerHistoryRepository : IAdvisorCustomerHistoryRepository
{
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
{
@ -30,13 +30,13 @@ public class CrmCustomerHistoryRepository : ICrmCustomerHistoryRepository
};
private readonly NavigationManager _navigation;
private ILogger<CrmCustomerHistoryRepository> _logger;
private ILogger<AdvisorCustomerHistoryRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _api;
public CrmCustomerHistoryRepository(
HttpClient client, ILogger<CrmCustomerHistoryRepository> logger,
public AdvisorCustomerHistoryRepository(
HttpClient client, ILogger<AdvisorCustomerHistoryRepository> logger,
NavigationManager navigation, IOptions<ApiConfig> configuration)
{
_client = client;

View file

@ -27,7 +27,7 @@ using Wonky.Entity.Requests;
namespace Wonky.Client.HttpRepository;
public class CrmCustomerRepository : ICrmCustomerRepository
public class AdvisorCustomerRepository : IAdvisorCustomerRepository
{
private readonly JsonSerializerOptions _options = new()
{
@ -35,12 +35,12 @@ public class CrmCustomerRepository : ICrmCustomerRepository
};
private readonly NavigationManager _navigation;
private ILogger<CrmCustomerRepository> _logger;
private ILogger<AdvisorCustomerRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _conf;
public CrmCustomerRepository(HttpClient client,
ILogger<CrmCustomerRepository> logger,
public AdvisorCustomerRepository(HttpClient client,
ILogger<AdvisorCustomerRepository> logger,
NavigationManager navigation,
IOptions<ApiConfig> apiConfig)
{

View file

@ -23,7 +23,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
public class CrmSalesReportRepository : ICrmSalesReportRepository
public class AdvisorSalesReportRepository : IAdvisorSalesReportRepository
{
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
{
@ -31,12 +31,12 @@ public class CrmSalesReportRepository : ICrmSalesReportRepository
};
private readonly NavigationManager _navigation;
private ILogger<CrmSalesReportRepository> _logger;
private ILogger<AdvisorSalesReportRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _api;
public CrmSalesReportRepository(HttpClient client,
ILogger<CrmSalesReportRepository> logger,
public AdvisorSalesReportRepository(HttpClient client,
ILogger<AdvisorSalesReportRepository> logger,
NavigationManager navigation, IOptions<ApiConfig> configuration)
{
_client = client;

View file

@ -22,7 +22,7 @@ using Wonky.Entity.DTO;
namespace Wonky.Client.HttpRepository;
public class CrmTaskItemRepository : ICrmTaskItemRepository
public class AdvisorTaskItemRepository : IAdvisorTaskItemRepository
{
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
{
@ -31,12 +31,12 @@ public class CrmTaskItemRepository : ICrmTaskItemRepository
};
private readonly NavigationManager _navigation;
private ILogger<CrmTaskItemRepository> _logger;
private ILogger<AdvisorTaskItemRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _apiConfig;
public CrmTaskItemRepository(HttpClient client,
ILogger<CrmTaskItemRepository> logger,
public AdvisorTaskItemRepository(HttpClient client,
ILogger<AdvisorTaskItemRepository> logger,
NavigationManager navigation, IOptions<ApiConfig> configuration)
{
_client = client;

View file

@ -23,7 +23,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
public class CrmWorkplaceRepository : ICrmWorkplaceRepository
public class AdvisorWorkplaceRepository : IAdvisorWorkplaceRepository
{
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
{
@ -31,13 +31,13 @@ public class CrmWorkplaceRepository : ICrmWorkplaceRepository
};
private readonly NavigationManager _navigation;
private ILogger<CrmWorkplaceRepository> _logger;
private ILogger<AdvisorWorkplaceRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _api;
public CrmWorkplaceRepository(HttpClient client,
ILogger<CrmWorkplaceRepository> logger,
public AdvisorWorkplaceRepository(HttpClient client,
ILogger<AdvisorWorkplaceRepository> logger,
NavigationManager navigation,
IOptions<ApiConfig> configuration)
{

View file

@ -8,7 +8,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
public class CrmPublicProductRepository : ICrmPublicProductRepository
public class ExternalProductRepository : IExternalProductRepository
{
private readonly JsonSerializerOptions? _options = new()
{
@ -16,11 +16,11 @@ public class CrmPublicProductRepository : ICrmPublicProductRepository
};
private readonly NavigationManager _navigation;
private ILogger<CrmPublicProductRepository> _logger;
private ILogger<ExternalProductRepository> _logger;
private readonly HttpClient _client;
private readonly ApiConfig _api;
public CrmPublicProductRepository(HttpClient client, ILogger<CrmPublicProductRepository> logger,
public ExternalProductRepository(HttpClient client, ILogger<ExternalProductRepository> logger,
NavigationManager navigation, IOptions<ApiConfig> configuration)
{
_client = client;

View file

@ -21,7 +21,7 @@ namespace Wonky.Client.HttpRepository;
/// <summary>
/// Interface Activity CRM Http repository
/// </summary>
public interface ICrmActivityRepository
public interface IAdvisorActivityRepository
{
/// <summary>
/// Get a list of open quotes

View file

@ -21,7 +21,7 @@ namespace Wonky.Client.HttpRepository;
/// Interface for Contacts CRM Http repository
/// </summary>
/// <returns></returns>
public interface ICrmContactRepository
public interface IAdvisorContactRepository
{
/// <summary>
/// Create Contact

View file

@ -20,7 +20,7 @@ namespace Wonky.Client.HttpRepository;
/// <summary>
/// Interface Customer History CRM Http repository
/// </summary>
public interface ICrmCustomerHistoryRepository
public interface IAdvisorCustomerHistoryRepository
{
/// <summary>
/// Return invoice list without company information

View file

@ -22,7 +22,7 @@ namespace Wonky.Client.HttpRepository;
/// <summary>
/// Interface Customer CRM Http repository
/// </summary>
public interface ICrmCustomerRepository
public interface IAdvisorCustomerRepository
{
/// <summary>
/// Get a list of CRM customers (SalesRep)

View file

@ -21,7 +21,7 @@ namespace Wonky.Client.HttpRepository;
/// <summary>
/// Interface Report Http repository
/// </summary>
public interface ICrmSalesReportRepository
public interface IAdvisorSalesReportRepository
{
/// <summary>
/// Report Exist for given data (SalesRep)

View file

@ -20,7 +20,7 @@ namespace Wonky.Client.HttpRepository;
/// <summary>
/// Interface for handling CRM Tasks http repository
/// </summary>
public interface ICrmTaskItemRepository
public interface IAdvisorTaskItemRepository
{
/// <summary>
/// Get Task List (SalesRep)

View file

@ -18,7 +18,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
public interface ICrmWorkplaceRepository
public interface IAdvisorWorkplaceRepository
{
Task<List<WorkplaceListView>> GetWorkplaces(string companyId);

View file

@ -3,7 +3,7 @@ using Wonky.Entity.Views;
namespace Wonky.Client.HttpRepository;
public interface ICrmPublicProductRepository
public interface IExternalProductRepository
{
Task<List<ExternalProductListView>> GetProducts();
}

View file

@ -14,9 +14,9 @@ public class DrawerCabinetService : IDrawerCabinetService
private readonly ILogger<DrawerCabinetService> _logger;
private readonly ILocalStorageService _asyncStorageService;
private readonly ISyncLocalStorageService _syncStorageService;
private readonly ICrmActivityRepository _activityRepo;
private readonly ICrmCustomerRepository _customerRepo;
private readonly ICrmCustomerHistoryRepository _historyRepo;
private readonly IAdvisorActivityRepository _activityRepo;
private readonly IAdvisorCustomerRepository _customerRepo;
private readonly IAdvisorCustomerHistoryRepository _historyRepo;
private readonly ICountryCatalogRepository _catalogRepo;
/// <summary>
@ -34,9 +34,9 @@ public class DrawerCabinetService : IDrawerCabinetService
ILocalStorageService asyncStorageService,
ISyncLocalStorageService syncStorageService,
ICountryCatalogRepository catalogRepo,
ICrmCustomerHistoryRepository historyRepo,
ICrmCustomerRepository customerRepo,
ICrmActivityRepository activityRepo)
IAdvisorCustomerHistoryRepository historyRepo,
IAdvisorCustomerRepository customerRepo,
IAdvisorActivityRepository activityRepo)
{
_logger = logger;
_asyncStorageService = asyncStorageService;

View file

@ -26,7 +26,7 @@ namespace Wonky.Client.OverlayCustomer;
public partial class CustomerInventoryReorderOverlay
{
// ##############################################################
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
// ##############################################################
[Parameter] public EventCallback<DraftItem> OnSelected { get; set; }

View file

@ -26,7 +26,7 @@ public partial class CustomerInvoiceViewOverlay : IDisposable
{
// ##############################################################
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
// ##############################################################
[Parameter] public string CompanyId { get; set; } = "";

View file

@ -25,7 +25,7 @@ namespace Wonky.Client.OverlayOrderCreate;
public partial class ProductHistoryOverlay
{
// ##############################################################
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
// ##############################################################
[Parameter] public string CompanyId { get; set; } = "";

View file

@ -25,7 +25,7 @@ namespace Wonky.Client.OverlayOrderCreate;
public partial class ProductPriceHistoryOverlay
{
// ##############################################################
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
// ##############################################################
[Parameter] public EventCallback<decimal> OnSelected { get; set; }

View file

@ -45,10 +45,10 @@ public partial class AdvisorActivityCreatePage : IDisposable
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILocalStorageService Storage { get; set; }
[Inject] public ICountryCatalogRepository CatalogRepo { get; set; }
[Inject] public ICrmCustomerRepository CompanyRepo { get; set; }
[Inject] public ICrmActivityRepository ActivityRepo { get; set; }
[Inject] public ICrmSalesReportRepository ReportRepo { get; set; }
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
[Inject] public IAdvisorActivityRepository ActivityRepo { get; set; }
[Inject] public IAdvisorSalesReportRepository ReportRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IUserInfoService UserInfo { get; set; }
[Inject] public IDrawerCabinetService CabinetService { get; set; }

View file

@ -33,8 +33,8 @@ public partial class AdvisorActivityTodayListPage : IDisposable
[Inject] public ILogger<AdvisorActivityTodayListPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ICrmActivityRepository ActivityRepo { get; set; }
[Inject] public ICrmSalesReportRepository ReportRepo { get; set; }
[Inject] public IAdvisorActivityRepository ActivityRepo { get; set; }
[Inject] public IAdvisorSalesReportRepository ReportRepo { get; set; }
[Inject] public IToastService Toaster { get; set; }
private ReportStatusView ReportStatusView { get; set; } = new();
private UserPreference UserPreference { get; set; } = new();

View file

@ -31,7 +31,7 @@ public partial class AdvisorActivityViewEditPage : IDisposable
[Parameter] public string CompanyId { get; set; } = "";
[Parameter] public string OrderId { get; set; } = "";
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICrmActivityRepository CrmActivityRepo { get; set; }
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
[Inject] public ILogger<AdvisorActivityViewEditPage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
@ -49,7 +49,7 @@ public partial class AdvisorActivityViewEditPage : IDisposable
Interceptor.RegisterBeforeSendEvent();
NoteContext = new EditContext(Note);
NoteContext.OnFieldChanged += HandleFieldChanged;
ReportItem = await CrmActivityRepo.GetReportItem(OrderId);
ReportItem = await AdvisorActivityRepo.GetReportItem(OrderId);
Note.ActivityId = ReportItem.ActivityId;
Note.OfficeNote = ReportItem.OfficeNote;
Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(ReportItem));
@ -66,7 +66,7 @@ public partial class AdvisorActivityViewEditPage : IDisposable
Working = true;
Disabled = true;
Logger.LogDebug("OfficeNote => \n {}", JsonSerializer.Serialize(Note));
await CrmActivityRepo.UpdateOfficeNote(Note);
await AdvisorActivityRepo.UpdateOfficeNote(Note);
Toaster.ShowInfo($"{ReportItem.ESalesNumber} - notat opdateret");
Navigator.NavigateTo("/advisor/activity-today");
}

View file

@ -30,8 +30,8 @@ public partial class AdvisorCustomerActivityListPage : IDisposable
{
// ######################################################################
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICrmActivityRepository CrmActivityRepo { get; set; }
[Inject] public ICrmCustomerRepository CompanyRepo { get; set; }
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
[Inject] public IDrawerCabinetService CabinetService { get; set; }
[Inject] public ILogger<AdvisorCustomerActivityListPage> Logger { get; set; }

View file

@ -38,7 +38,7 @@ public partial class AdvisorCustomerCreatePage : IDisposable
[Inject] public ILogger<AdvisorCustomerCreatePage> Logger { get; set; }
[Inject] public ILocalStorageService Storage { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ICrmCustomerRepository CompanyRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public VatInfoLookupService VatService { get; set; }
[Inject] public IUserInfoService UserInfoService { get; set; }

View file

@ -36,8 +36,8 @@ namespace Wonky.Client.Pages;
public partial class AdvisorCustomerInventoryListPage : IDisposable
{
// ##############################################################
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public ICrmCustomerRepository CustomerRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public IToastService Toaster { get; set; }
[Inject] public ILogger<AdvisorCustomerInventoryListPage> Logger { get; set; }

View file

@ -32,9 +32,9 @@ public partial class AdvisorCustomerInvoiceListPage : IDisposable
{
// ##############################################################
[Inject] public ILogger<AdvisorCustomerInvoiceListPage> Logger { get; set; }
[Inject] public ICrmCustomerRepository CompanyRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IToastService Toaster { get; set; }
[Inject] public IDrawerCabinetService CabinetService { get; set; }

View file

@ -31,7 +31,7 @@ public partial class AdvisorCustomerPagedListPage : IDisposable
// ######################################################################3
[Inject] public ILocalStorageService Storage { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public ICrmCustomerRepository CompanyRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public IUserInfoService UserInfoService { get; set; }

View file

@ -39,10 +39,10 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
[Inject] public IToastService Toaster { get; set; }
[Inject] public ILogger<AdvisorCustomerViewEditPage> Logger { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ICrmActivityRepository ActivityRepo { get; set; }
[Inject] public ICrmCustomerRepository CustomerRepo { get; set; }
[Inject] public ICrmCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public ICrmContactRepository ContactRepo { get; set; }
[Inject] public IAdvisorActivityRepository ActivityRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
[Inject] public IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
[Inject] public IAdvisorContactRepository ContactRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public VatInfoLookupService VatService { get; set; }
[Inject] public ILocalStorageService Storage { get; set; }
@ -172,7 +172,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
/*
* display urgency of next visit
*/
VisitState = Utils.GetVisitState($"{NextVisit:yyyy-MM-dd}");
VisitState = Utils.MapVisitState($"{NextVisit:yyyy-MM-dd}");
/*
* handle InfoDrawer.Company out of business case
*/

View file

@ -27,8 +27,8 @@ namespace Wonky.Client.Pages;
public partial class AdvisorCustomerWorkplaceListPage : IDisposable
{
// ###############################################################
[Inject] public ICrmWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public ICrmCustomerRepository CustomerRepo { get; set; }
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }

View file

@ -29,8 +29,8 @@ public partial class AdvisorCustomerWorkplaceNewPage : IDisposable
{
// ###############################################################
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICrmCustomerRepository CustomerRepo { get; set; }
[Inject] public ICrmWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public IToastService Toaster { get; set; }
[Inject] public ILogger<AdvisorCustomerWorkplaceNewPage> Logger { get; set; }
[Inject] public NavigationManager Navigator { get; set; }

View file

@ -34,8 +34,8 @@ namespace Wonky.Client.Pages;
public partial class AdvisorCustomerWorkplaceRevisionPage : IDisposable
{
// #############################################################
[Inject] public ICrmWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public ICrmPublicProductRepository PublicProductRepo { get; set; }
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public IExternalProductRepository PublicProductRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILogger<AdvisorCustomerWorkplaceRevisionPage> Logger { get; set; }

View file

@ -33,9 +33,9 @@ namespace Wonky.Client.Pages;
public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
{
// #############################################################
[Inject] public ICrmWorkplaceRepository Workplaces { get; set; }
[Inject] public ICrmCustomerRepository CustomerRepo { get; set; }
[Inject] public ICrmWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public IAdvisorWorkplaceRepository Workplaces { get; set; }
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILogger<AdvisorCustomerWorkplaceViewEditPage> Logger { get; set; }

View file

@ -29,7 +29,7 @@ namespace Wonky.Client.Pages;
public partial class AdvisorQuoteListPage : IDisposable
{
[Inject] public ICrmActivityRepository CrmActivityRepo { get; set; }
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ILogger<AdvisorQuoteListPage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; }
@ -44,7 +44,7 @@ public partial class AdvisorQuoteListPage : IDisposable
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
Working = true;
QuoteList = await CrmActivityRepo.GetQuotes();
QuoteList = await AdvisorActivityRepo.GetQuotes();
await Storage.SetItemAsync("quotes", QuoteList.OrderBy(x => x.Company.Name));
Working = false;
// filter quotes - if any - default to QStatus.NoteOpen
@ -76,12 +76,12 @@ public partial class AdvisorQuoteListPage : IDisposable
quote.OrderDate = $"{DateTime.Now:yyyy-MM-dd}";
quote.QuoteStatusEnum = Utils.EnumToString(args.Status);
// send update request to backend
var response = await CrmActivityRepo.UpdateQuoteStatus(quote);
var response = await AdvisorActivityRepo.UpdateQuoteStatus(quote);
Toaster.ShowInfo($"{response.Message}");
// clear and reload quotes
QuoteList = new List<ReportItemView>();
await Storage.RemoveItemAsync("quotes");
QuoteList = await CrmActivityRepo.GetQuotes();
QuoteList = await AdvisorActivityRepo.GetQuotes();
// store quotes in local storage
await Storage.SetItemAsync("quotes", QuoteList.OrderBy(x => x.Company.Name));
// filter quotes - if any - based on active filter

View file

@ -34,7 +34,7 @@ public partial class AdvisorReportCreatePage : IDisposable
// ##########################################################################
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public UserPreferenceService PreferenceService { get; set; }
[Inject] public ICrmSalesReportRepository CrmSalesReportRepo { get; set; }
[Inject] public IAdvisorSalesReportRepository AdvisorSalesReportRepo { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILogger<AdvisorReportCreatePage> Logger { get; set; }
[Inject] public IToastService Toaster { get; set; }
@ -98,7 +98,7 @@ public partial class AdvisorReportCreatePage : IDisposable
ThisWorkDate = DateTime.Parse(WorkDate);
}
if (await CrmSalesReportRepo.ReportExist(WorkDate))
if (await AdvisorSalesReportRepo.ReportExist(WorkDate))
{
Navigator.NavigateTo($"/advisor/reports/view/{ThisWorkDate:yyyy-MM-dd}");
}
@ -136,7 +136,7 @@ public partial class AdvisorReportCreatePage : IDisposable
InitialValues = new ReportFiguresDto();
Activities = new List<ReportItemView>();
var data = await CrmSalesReportRepo.InitializeReportData(WorkDate);
var data = await AdvisorSalesReportRepo.InitializeReportData(WorkDate);
if(data.ReportClosed)
Navigator.NavigateTo($"/advisor/reports/view/{ThisWorkDate:yyyy-MM-dd}");
@ -204,7 +204,7 @@ public partial class AdvisorReportCreatePage : IDisposable
return;
Working = true;
var result = await CrmSalesReportRepo.CreateReport(WorkDate, Report);
var result = await AdvisorSalesReportRepo.CreateReport(WorkDate, Report);
Logger.LogDebug("CreateReport.result => {}", JsonSerializer.Serialize(result));
// reset km and date confirmation

View file

@ -24,7 +24,7 @@ namespace Wonky.Client.Pages;
public partial class AdvisorReportListPage : IDisposable
{
[Inject] public ICrmSalesReportRepository CrmSalesReportRepo { get; set; }
[Inject] public IAdvisorSalesReportRepository AdvisorSalesReportRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILogger<AdvisorReportListPage> Logger { get; set; }
@ -39,7 +39,7 @@ public partial class AdvisorReportListPage : IDisposable
Working = true;
var reports = await CrmSalesReportRepo.GetReports();
var reports = await AdvisorSalesReportRepo.GetReports();
if (reports.Any())
ReportList = reports.OrderByDescending(x => x.ReportDate).ToList();

View file

@ -30,7 +30,7 @@ namespace Wonky.Client.Pages;
public partial class AdvisorReportViewPage : IDisposable
{
[Parameter] public string ReportDate { get; set; }
[Inject] public ICrmSalesReportRepository CrmSalesReportRepo { get; set; }
[Inject] public IAdvisorSalesReportRepository AdvisorSalesReportRepo { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ILocalStorageService Storage { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
@ -106,7 +106,7 @@ public partial class AdvisorReportViewPage : IDisposable
Working = true;
// fetch report
Report = await CrmSalesReportRepo.GetReport(workDate);
Report = await AdvisorSalesReportRepo.GetReport(workDate);
// extract activities
Activities = Report.ReportItems.Where(x => x.Lines.Any()).ToList();

View file

@ -30,7 +30,7 @@ public partial class AdvisorTaskItemListCrmPage : IDisposable
[Inject] public ILogger<AdvisorTaskItemListCrmPage> Logger { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ICrmTaskItemRepository TaskRepo { get; set; }
[Inject] public IAdvisorTaskItemRepository TaskRepo { get; set; }
[Inject] public IToastService Toaster { get; set; }
private UserPreference Profile { get; set; } = new();
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";

View file

@ -28,7 +28,7 @@ public partial class AdvisorTaskItemViewCrmPage : IDisposable
{
[Parameter] public string TaskItemId { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICrmTaskItemRepository TaskRepo { get; set; }
[Inject] public IAdvisorTaskItemRepository TaskRepo { get; set; }
private TaskItemDto TaskItem { get; set; } = new ();
private EditContext TaskContext { get; set; }
private bool Working { get; set; } = true;

View file

@ -32,7 +32,7 @@ public partial class OfficeOrderViewPage : IDisposable
{
// #############################################################
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public ICrmActivityRepository CrmActivityRepo { get; set; }
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
[Inject] public ISystemSendMailService MailService { get; set; }
[Inject] public ILocalStorageService Storage { get; set; }
[Inject] public ICountryUserInfoRepository UserRepo { get; set; }
@ -59,7 +59,7 @@ public partial class OfficeOrderViewPage : IDisposable
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
// fetch order from backend
ReportItem = await CrmActivityRepo.GetReportItem(OrderId);
ReportItem = await AdvisorActivityRepo.GetReportItem(OrderId);
Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(ReportItem, _options));
Working = false;
}
@ -75,7 +75,7 @@ public partial class OfficeOrderViewPage : IDisposable
Working = true;
Logger.LogDebug("GetExpressState => {}", JsonSerializer.Serialize(ReportItem, _options));
// send request to backend
var responseView = await CrmActivityRepo.GetExpressState(ReportItem.ActivityId);
var responseView = await AdvisorActivityRepo.GetExpressState(ReportItem.ActivityId);
Logger.LogDebug("SetExpressState => responseView <= {} ", JsonSerializer.Serialize(responseView));
// get user info from storage
var user = await UserInfoService.GetUserInfo();

View file

@ -59,14 +59,14 @@ builder.Services.AddScoped<IClipboardService, ClipboardService>();
builder.Services.AddScoped<IUserInfoService, UserInfoService>();
builder.Services.AddScoped<UserPreferenceService, UserPreferenceService>();
// crm repositories
builder.Services.AddScoped<ICrmActivityRepository, CrmActivityRepository>();
builder.Services.AddScoped<ICrmCustomerRepository, CrmCustomerRepository>();
builder.Services.AddScoped<ICrmContactRepository, CrmContactRepository>();
builder.Services.AddScoped<ICrmCustomerHistoryRepository, CrmCustomerHistoryRepository>();
builder.Services.AddScoped<ICrmTaskItemRepository, CrmTaskItemRepository>();
builder.Services.AddScoped<ICrmSalesReportRepository, CrmSalesReportRepository>();
builder.Services.AddScoped<ICrmWorkplaceRepository, CrmWorkplaceRepository>();
builder.Services.AddScoped<ICrmPublicProductRepository, CrmPublicProductRepository>();
builder.Services.AddScoped<IAdvisorActivityRepository, AdvisorActivityRepository>();
builder.Services.AddScoped<IAdvisorCustomerRepository, AdvisorCustomerRepository>();
builder.Services.AddScoped<IAdvisorContactRepository, AdvisorContactRepository>();
builder.Services.AddScoped<IAdvisorCustomerHistoryRepository, AdvisorCustomerHistoryRepository>();
builder.Services.AddScoped<IAdvisorTaskItemRepository, AdvisorTaskItemRepository>();
builder.Services.AddScoped<IAdvisorSalesReportRepository, AdvisorSalesReportRepository>();
builder.Services.AddScoped<IAdvisorWorkplaceRepository, AdvisorWorkplaceRepository>();
builder.Services.AddScoped<IExternalProductRepository, ExternalProductRepository>();
// administrative repositories
builder.Services.AddScoped<ICountryCustomerHistoryRepository, CountryCustomerHistoryRepository>();
builder.Services.AddScoped<ICountryCustomerActivityRepository, CountryCustomerActivityRepository>();

View file

@ -1,9 +1,9 @@
{
"appInfo": {
"name": "Wonky Online",
"version": "162.0",
"version": "163.0",
"rc": true,
"sandBox": false,
"sandBox": true,
"image": "grumpy-coder.png"
},
"Logging": {
@ -19,7 +19,7 @@
}
},
"apiConfig": {
"baseUrl": "https://zeta.innotec.dk",
"baseUrl": "https://eta.innotec.dk",
"catalog": "api/v2/catalog/country",
"crmCustomers": "api/v2/crm/companies",
"crmInventoryExt": "history/inventory",

View file

@ -41,11 +41,11 @@ a, .btn-link {
color: #0071c1;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
/*.btn-primary {*/
/* color: #fff;*/
/* background-color: #1b6ec2;*/
/* border-color: #1861ac;*/
/*}*/
.inno {
color: #ffaa00;
@ -82,27 +82,6 @@ a, .btn-link {
min-width: 16px;
min-height: 16px;
}
.the-good-bg {
background-color: green;
}
.the-bad-bg {
background-color: orange;
}
.the-ugly-bg {
background-color: #ff0000;
}
.the-draw-bg {
background-color: #9b02fc;
}
.no-vat-bg {
background-color: red;
}
.the-dead-bg {
background-color: #0dcaf0;
}
.the-fast {
color: orange;
}
.the-good {
color: green;
}
@ -110,11 +89,36 @@ a, .btn-link {
color: orange;
}
.the-ugly {
color: #ff0000;
color: red;
}
.the-dead {
color: #0dcaf0;
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 */

View file

@ -17,7 +17,7 @@
<link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="/bootstrap/css/bootstrap-icons.css" rel="stylesheet" />
<link href="/flag-icons/flag-icons.css" rel="stylesheet" />
<link href="/css/app.css" rel="stylesheet" />
<link href="/css/20230607.css" rel="stylesheet" />
<link href="/css/print.css" rel="stylesheet" />
<link href="/Wonky.Client.styles.css" rel="stylesheet" />
<link href="/_content/Blazored.Toast/blazored-toast.min.css" rel="stylesheet" />