end-of-day refactor check components doesn't use repos
This commit is contained in:
parent
a4e9598fa3
commit
dd91890b97
137 changed files with 931 additions and 647 deletions
|
@ -18,13 +18,9 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class ActivityTableCrmComponent
|
||||
public partial class ActivityListComponent
|
||||
{
|
||||
[Parameter] public List<ReportItemView> ActivityList { get; set; } = new();
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
|
||||
// private void ShowOrder(string companyId, string orderId)
|
||||
// {
|
||||
// Navigator.NavigateTo($"office/customers/{companyId}/orders/{orderId}");
|
||||
// }
|
||||
}
|
|
@ -21,12 +21,8 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class CatalogTableComponent
|
||||
public partial class CatalogListComponent
|
||||
{
|
||||
[Parameter] public List<SalesItemView> ItemList { get; set; } = new();
|
||||
[Inject] public IToastService ToastService { get; set; }
|
||||
private void AddToDraft()
|
||||
{
|
||||
ToastService.ShowInfo("TODO: læg til ordre kladde");
|
||||
}
|
||||
}
|
|
@ -21,7 +21,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class CatalogTablePrintComponent
|
||||
public partial class CatalogPrintComponent
|
||||
{
|
||||
[Parameter] public List<SalesItemView> ItemList { get; set; } = new();
|
||||
[Parameter] public string CountryName { get; set; } = "";
|
|
@ -24,7 +24,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components
|
||||
{
|
||||
public partial class OfficeCustomerTableComponent
|
||||
public partial class CountryCustomerListComponent
|
||||
{
|
||||
[Parameter] public List<CompanyDto> CompanyList { get; set; } = new();
|
||||
|
|
@ -14,12 +14,11 @@
|
|||
//
|
||||
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class OfficeUserTableComponent
|
||||
public partial class CountryUserListComponent
|
||||
{
|
||||
[Parameter] public List<UserListAdminView> UserList { get; set; } = new();
|
||||
}
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
<div class="row">
|
||||
|
||||
@if (ProductList.Any())
|
||||
@if (Inventory.Any())
|
||||
{
|
||||
<div class="list-group mt-2">
|
||||
<div class="list-group-item bg-dark text-white">
|
||||
|
@ -31,7 +31,7 @@
|
|||
<div class="col-sm-1"></div>
|
||||
</div>
|
||||
</div>
|
||||
@foreach (var product in ProductList)
|
||||
@foreach (var product in Inventory)
|
||||
{
|
||||
<div class="list-group-item">
|
||||
<div class="row align-items-center">
|
||||
|
@ -66,8 +66,6 @@
|
|||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
<InventoryReorderModal OnSelected="@OnSelectedItem" CompanyId="@CompanyId" SalesItem="@SalesItem" @ref="ReorderModal"/>
|
||||
}
|
||||
else
|
||||
{
|
|
@ -25,20 +25,15 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class CustomerProductTableComponent
|
||||
public partial class CustomerInventoryListComponent
|
||||
{
|
||||
[CascadingParameter] public DraftStateProvider DraftStateProvider { get; set; } = new();
|
||||
[Parameter] public List<ProductInventoryView> ProductList { get; set; } = new();
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] public ICatalogCrmHttpRepository CatalogCrm { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
// Parameters
|
||||
[Parameter] public List<ProductInventoryView> Inventory { get; set; } = new();
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Parameter] public EventCallback<string> OnReorderSelected { get; set; }
|
||||
|
||||
// private variables
|
||||
private SalesItemView SalesItem { get; set; } = new();
|
||||
private string Price { get; set; } = "0";
|
||||
private string Quantity { get; set; } = "1";
|
||||
private string Sku { get; set; } = "";
|
||||
private InventoryReorderModal ReorderModal { get; set; } = new();
|
||||
private SelectedSku Item { get; set; } = new();
|
||||
private bool Descending { get; set; }
|
||||
|
||||
private void SortProducts(PSort column)
|
||||
|
@ -49,57 +44,47 @@ public partial class CustomerProductTableComponent
|
|||
case PSort.Desc:
|
||||
if (Descending)
|
||||
{
|
||||
ProductList = ProductList.OrderByDescending(x => x.Description).ToList();
|
||||
Inventory = Inventory.OrderByDescending(x => x.Description).ToList();
|
||||
break;
|
||||
}
|
||||
ProductList = ProductList.OrderBy(x => x.Description).ToList();
|
||||
Inventory = Inventory.OrderBy(x => x.Description).ToList();
|
||||
break;
|
||||
case PSort.Sku:
|
||||
if (Descending)
|
||||
{
|
||||
ProductList = ProductList.OrderByDescending(x => x.Sku).ToList();
|
||||
Inventory = Inventory.OrderByDescending(x => x.Sku).ToList();
|
||||
break;
|
||||
}
|
||||
ProductList = ProductList.OrderBy(x => x.Sku).ToList();
|
||||
Inventory = Inventory.OrderBy(x => x.Sku).ToList();
|
||||
break;
|
||||
case PSort.Qty:
|
||||
if (Descending)
|
||||
{
|
||||
ProductList = ProductList.OrderByDescending(x => x.Quantity).ToList();
|
||||
Inventory = Inventory.OrderByDescending(x => x.Quantity).ToList();
|
||||
break;
|
||||
}
|
||||
ProductList = ProductList.OrderBy(x => x.Quantity).ToList();
|
||||
Inventory = Inventory.OrderBy(x => x.Quantity).ToList();
|
||||
break;
|
||||
case PSort.None:
|
||||
break;
|
||||
case PSort.Abbr:
|
||||
break;
|
||||
default:
|
||||
ProductList = ProductList.OrderByDescending(x => x.Quantity).ToList();
|
||||
Inventory = Inventory.OrderByDescending(x => x.Quantity).ToList();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ProductCheck(string sku)
|
||||
{
|
||||
var x = ProductList.First(x => x.Sku == sku);
|
||||
x.Check = !x.Check;
|
||||
await Storage.SetItemAsync($"{CompanyId}-products", ProductList);
|
||||
}
|
||||
private async Task CallShowReorderModal(string sku)
|
||||
{
|
||||
// fetch item from http repo
|
||||
SalesItem = await CatalogCrm.GetSalesItemSku(sku);
|
||||
ReorderModal.Show();
|
||||
await ProductCheck(sku);
|
||||
await OnReorderSelected.InvokeAsync(sku);
|
||||
}
|
||||
|
||||
private async Task OnSelectedItem(DraftItem draftItem)
|
||||
private async Task ProductCheck(string sku)
|
||||
{
|
||||
// add item to order draft
|
||||
DraftStateProvider.Draft.DraftType = "order";
|
||||
DraftStateProvider.Draft.Items.Add(draftItem);
|
||||
// set item checked
|
||||
await ProductCheck(draftItem.Item.Sku);
|
||||
await DraftStateProvider.SaveChangesAsync();
|
||||
var x = Inventory.First(x => x.Sku == sku);
|
||||
x.Check = !x.Check;
|
||||
await Storage.SetItemAsync($"{CompanyId}-products", Inventory);
|
||||
}
|
||||
}
|
|
@ -49,4 +49,3 @@ else
|
|||
{
|
||||
<div>Ingen data</div>
|
||||
}
|
||||
<InvoiceViewModal CompanyId="@CompanyId" InvoiceId="@InvoiceId" @ref="InvoiceView" />
|
|
@ -0,0 +1,17 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.Shared;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class CustomerInvoiceListComponent
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Parameter] public List<InvoiceListItemView> InvoiceList { get; set; } = new();
|
||||
[Parameter] public EventCallback<string> OnShowInvoice { get; set; }
|
||||
|
||||
private async Task ShowInvoice(string invoiceId)
|
||||
{
|
||||
await OnShowInvoice.InvokeAsync(invoiceId);
|
||||
}
|
||||
}
|
|
@ -19,7 +19,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class CustomerProductLineTableComponent
|
||||
public partial class CustomerProductLineListComponent
|
||||
{
|
||||
[Parameter] public List<ProductHistoryView> ProductHistory { get; set; } = new();
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.Shared;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class InvoiceTableComponent
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Parameter] public List<InvoiceListItemView> InvoiceList { get; set; } = new();
|
||||
private InvoiceViewModal InvoiceView { get; set; } = new();
|
||||
private string InvoiceId { get; set; } = "";
|
||||
private void ShowInvoice(string invoiceId)
|
||||
{
|
||||
Console.WriteLine($"invoiceId => {invoiceId}");
|
||||
Console.WriteLine($"companyId => {CompanyId}");
|
||||
InvoiceId = invoiceId;
|
||||
InvoiceView.Show();
|
||||
}
|
||||
}
|
|
@ -18,12 +18,29 @@
|
|||
@using Microsoft.AspNetCore.Authorization
|
||||
@using Wonky.Client.Components
|
||||
|
||||
<PageTitle>Innotec Admin</PageTitle>
|
||||
|
||||
<div class="row">
|
||||
<div class="col"></div>
|
||||
<div class="col"></div>
|
||||
<div class="col"></div>
|
||||
<div class="col"></div>
|
||||
<div class="col"></div>
|
||||
<div class="row g-3">
|
||||
<div class="col-sm-3">
|
||||
<div class="card" style="width: 10rem;">
|
||||
<img src="flag-icons/flags/4x3/dk.svg" alt="Danmark"/>
|
||||
<div class="card-body">
|
||||
<a class="btn btn-primary d-block" href="/office/dk">Danmark</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="card" style="width: 10rem;">
|
||||
<img src="flag-icons/flags/4x3/no.svg" alt="Norge"/>
|
||||
<div class="card-body">
|
||||
<a class="btn btn-primary d-block" href="/office/no">Norge</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<div class="card" style="width: 10rem;">
|
||||
<img src="flag-icons/flags/4x3/se.svg" alt="Sverige"/>
|
||||
<div class="card-body">
|
||||
<a class="btn btn-primary d-block" href="/office/se">Sverige</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -30,14 +30,9 @@ using Wonky.Entity.Models;
|
|||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
public partial class LandingComponentAdmin : IDisposable
|
||||
public partial class LandingComponentAdmin
|
||||
{
|
||||
[Inject] public UserProfileService ProfileService { get; set; }
|
||||
[Inject] public ILogger<LandingComponentAdmin> Logger { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ITaskItemCrmHttpRepository TaskRepo { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
|
||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -46,7 +41,7 @@ public partial class LandingComponentAdmin : IDisposable
|
|||
};
|
||||
|
||||
private UserPref Prefs { get; set; } = new();
|
||||
private string WordDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
private string Today { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
|
||||
|
||||
|
@ -54,15 +49,8 @@ public partial class LandingComponentAdmin : IDisposable
|
|||
{
|
||||
Prefs = await ProfileService.GetPreferences();
|
||||
if(!string.IsNullOrWhiteSpace(Prefs.WorkDate))
|
||||
WordDate = Prefs.WorkDate;
|
||||
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
WorkDate = Prefs.WorkDate;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -22,8 +22,6 @@
|
|||
|
||||
<AuthorizeView Roles="Advisor">
|
||||
<div class="bg-dark text-white rounded-2 mb-2 py-2">
|
||||
<WorkDateComponent OnChangedCallback="GetWorkdayTasks"/>
|
||||
<WorkDateComponent />
|
||||
</div>
|
||||
<TaskItemTableComponent TaskItemList="TaskItems" OnCompleteTask="OnCompleteTask"
|
||||
OnDeleteTask="OnDeleteConfirmed" OnTaskCompleted="OnTaskCompleted"/>
|
||||
</AuthorizeView>
|
|
@ -30,14 +30,9 @@ using Wonky.Entity.Models;
|
|||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
public partial class LandingComponentAdvisor : IDisposable
|
||||
public partial class LandingComponentAdvisor
|
||||
{
|
||||
[Inject] public UserProfileService ProfileService { get; set; }
|
||||
[Inject] public ILogger<LandingComponentAdvisor> Logger { get; set; }
|
||||
[Inject] public HttpInterceptorService Inteceptor { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ITaskItemCrmHttpRepository TaskRepo { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
|
||||
private readonly JsonSerializerOptions JsonOptions = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -47,59 +42,12 @@ public partial class LandingComponentAdvisor : IDisposable
|
|||
|
||||
private UserPref Prefs { get; set; } = new();
|
||||
private DateTime SelectedDate { get; set; }
|
||||
private List<TaskItemDto> TaskItems { get; set; } = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Prefs = await ProfileService.GetPreferences();
|
||||
SelectedDate = string.IsNullOrWhiteSpace(Prefs.WorkDate) ? DateTime.Now : DateTime.Parse(Prefs.WorkDate);
|
||||
|
||||
Inteceptor.RegisterEvent();
|
||||
Inteceptor.RegisterBeforeSendEvent();
|
||||
|
||||
//await GetTaskItems(_workDate);
|
||||
await GetAllTasks();
|
||||
}
|
||||
|
||||
private async Task GetAllTasks()
|
||||
{
|
||||
TaskItems = await TaskRepo.GetTaskList();
|
||||
}
|
||||
|
||||
private async Task OnCompleteTask(string taskItemId)
|
||||
{
|
||||
await ProfileService.SetWorkDate(DateTime.Now);
|
||||
var item = TaskItems.Find(x => x.TaskItemId == taskItemId);
|
||||
Navigator.NavigateTo($"/companies/{item.ReferenceId}/activities/new");
|
||||
}
|
||||
|
||||
private async Task GetWorkdayTasks(string workDate)
|
||||
{
|
||||
SelectedDate = DateTime.Parse(workDate);
|
||||
TaskItems = new List<TaskItemDto>();
|
||||
TaskItems = await TaskRepo.GetTaskList($"{SelectedDate:yyyy-MM-dd}");
|
||||
}
|
||||
|
||||
private async Task OnTaskCompleted(string taskItemId)
|
||||
{
|
||||
var item = TaskItems.Find(x => x.TaskItemId == taskItemId);
|
||||
item.IsCompleted = true;
|
||||
await TaskRepo.UpdateTaskItem(taskItemId, item);
|
||||
TaskItems.Remove(item);
|
||||
Toaster.ShowInfo("Opgaven er markeret som udført.");
|
||||
}
|
||||
|
||||
private async Task OnDeleteConfirmed(string taskItemId)
|
||||
{
|
||||
var item = TaskItems.First(x => x.TaskItemId == taskItemId);
|
||||
TaskItems.Remove(item);
|
||||
await TaskRepo.DeleteTaskItem(taskItemId);
|
||||
Toaster.ShowInfo("Opgaven er slettet.");
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Inteceptor.DisposeEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -90,19 +90,3 @@
|
|||
}
|
||||
</div>
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter]
|
||||
public List<ReportItemView> Quotes { get; set; } = new();
|
||||
[Parameter] public EventCallback<QuoteCallbackArgs> OnChangedCallback { get; set; }
|
||||
|
||||
private async Task SetQuote(string eSalesNumber, QStatus status)
|
||||
{
|
||||
var args = new QuoteCallbackArgs()
|
||||
{
|
||||
ESalesNumber = eSalesNumber,
|
||||
Status = status
|
||||
};
|
||||
await OnChangedCallback.InvokeAsync(args);
|
||||
}
|
||||
}
|
||||
|
|
22
Wonky.Client/Components/QuoteListComponent.razor.cs
Normal file
22
Wonky.Client/Components/QuoteListComponent.razor.cs
Normal file
|
@ -0,0 +1,22 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.Models;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class QuoteListComponent
|
||||
{
|
||||
[Parameter]
|
||||
public List<ReportItemView> Quotes { get; set; } = new();
|
||||
[Parameter] public EventCallback<QuoteCallbackArgs> OnChangedCallback { get; set; }
|
||||
|
||||
private async Task SetQuote(string eSalesNumber, QStatus status)
|
||||
{
|
||||
var args = new QuoteCallbackArgs()
|
||||
{
|
||||
ESalesNumber = eSalesNumber,
|
||||
Status = status
|
||||
};
|
||||
await OnChangedCallback.InvokeAsync(args);
|
||||
}
|
||||
}
|
|
@ -141,16 +141,3 @@
|
|||
</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
@code{
|
||||
|
||||
[Parameter]
|
||||
public ReportItemView ReportItem { get; set; } = new();
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
var lines = ReportItem.Lines.OrderBy(x => x.Location).ToList();
|
||||
ReportItem.Lines = lines;
|
||||
}
|
||||
|
||||
}
|
16
Wonky.Client/Components/ReportItemComponent.razor.cs
Normal file
16
Wonky.Client/Components/ReportItemComponent.razor.cs
Normal file
|
@ -0,0 +1,16 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class ReportItemComponent
|
||||
{
|
||||
[Parameter]
|
||||
public ReportItemView ReportItem { get; set; } = new();
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
var lines = ReportItem.Lines.OrderBy(x => x.Location).ToList();
|
||||
ReportItem.Lines = lines;
|
||||
}
|
||||
}
|
|
@ -19,7 +19,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class ReportTableCrmComponent
|
||||
public partial class ReportListComponent
|
||||
{
|
||||
[Parameter] public List<SalesReportListView> ReportList { get; set; } = new();
|
||||
[Parameter] public EventCallback<string> OnShowReport { get; set; }
|
|
@ -18,7 +18,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class ReportTableOfficeComponent
|
||||
public partial class ReportListOfficeComponent
|
||||
{
|
||||
[Parameter] public List<SalesReportListView> ReportList { get; set; } = new();
|
||||
[Parameter] public string UserId { get; set; } = "";
|
|
@ -28,7 +28,7 @@ public partial class WarehouseListComponent
|
|||
{
|
||||
[Parameter] public string Status { get; set; } = "none";
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IWarehouseHttpRepository WarehouseRepo { get; set; }
|
||||
[Inject] public IWarehouseRepository WarehouseRepo { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
|
||||
private string ItemList { get; set; } = "";
|
||||
|
|
|
@ -31,10 +31,3 @@ else
|
|||
{
|
||||
<div>Ingen data</div>
|
||||
}
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter] public List<WorkplaceListView> Workplaces { get; set; } = new();
|
||||
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
}
|
11
Wonky.Client/Components/WorkplaceListComponent.razor.cs
Normal file
11
Wonky.Client/Components/WorkplaceListComponent.razor.cs
Normal file
|
@ -0,0 +1,11 @@
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Components;
|
||||
|
||||
public partial class WorkplaceListComponent
|
||||
{
|
||||
[Parameter] public List<WorkplaceListView> Workplaces { get; set; } = new();
|
||||
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
}
|
|
@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface Activity CRM Http repository
|
||||
/// </summary>
|
||||
public interface IActivityCrmHttpRepository
|
||||
public interface IAdvisorActivityRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get a list of open quotes
|
|
@ -22,22 +22,14 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface Catalog Http repository
|
||||
/// </summary>
|
||||
public interface ICatalogCrmHttpRepository
|
||||
public interface IAdvisorCatalogRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get a paged sales item list
|
||||
/// </summary>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <returns></returns>
|
||||
Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(CatalogPagingParams pagingParameters);
|
||||
|
||||
/// <summary>
|
||||
/// Get a paged sales item list for country
|
||||
/// </summary>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(CatalogPagingParams pagingParameters, string countryCode);
|
||||
Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(CatalogPaging pagingParameters);
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by id
|
||||
|
@ -46,20 +38,13 @@ public interface ICatalogCrmHttpRepository
|
|||
/// <returns></returns>
|
||||
Task<SalesItemView> GetSalesItemId(string salesItemId);
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by sku
|
||||
/// </summary>
|
||||
/// <param name="sku"></param>
|
||||
/// <returns></returns>
|
||||
Task<SalesItemView> GetSalesItemSku(string sku);
|
||||
|
||||
/// <summary>
|
||||
/// Overload Get sales item by sku and country code
|
||||
/// </summary>
|
||||
/// <param name="sku"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
Task<SalesItemView> GetSalesItemSku(string sku, string countryCode);
|
||||
Task<SalesItemView> GetSalesItemSku(string countryCode, string sku);
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by variant id
|
|
@ -6,7 +6,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// Interface for Contacts CRM Http repository
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public interface IContactCrmHttpRepository
|
||||
public interface IAdvisorContactRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Create Contact
|
|
@ -22,7 +22,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface Customer CRM Http repository
|
||||
/// </summary>
|
||||
public interface ICustomerCrmHttpRepository
|
||||
public interface IAdvisorCustomerRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get a list of CRM customers (SalesRep)
|
|
@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface Report Http repository
|
||||
/// </summary>
|
||||
public interface IReportHttpRepository
|
||||
public interface IAdvisorReportRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Report Exist for given data (SalesRep)
|
||||
|
@ -57,19 +57,4 @@ public interface IReportHttpRepository
|
|||
/// <param name="reportDto"></param>
|
||||
/// <returns></returns>
|
||||
Task<ApiResponseView> CreateReport(string workDate, ReportDto reportDto);
|
||||
|
||||
/// <summary>
|
||||
/// Get Reports for given userId (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<SalesReportListView>> GetCountryReports(string userId);
|
||||
|
||||
/// <summary>
|
||||
/// Get Report for given userId and workDate (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="workDate"></param>
|
||||
/// <returns></returns>
|
||||
Task<ReportView> GetCountryReport(string userId, string workDate);
|
||||
}
|
|
@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface for handling CRM Tasks http repository
|
||||
/// </summary>
|
||||
public interface ITaskItemCrmHttpRepository
|
||||
public interface IAdvisorTaskItemRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get Task List (SalesRep)
|
65
Wonky.Client/HttpInterfaces/ICountryCatalogRepository.cs
Normal file
65
Wonky.Client/HttpInterfaces/ICountryCatalogRepository.cs
Normal file
|
@ -0,0 +1,65 @@
|
|||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
//
|
||||
|
||||
using Wonky.Client.Features;
|
||||
using Wonky.Entity.Requests;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.HttpInterfaces;
|
||||
|
||||
/// <summary>
|
||||
/// Interface Catalog Http repository
|
||||
/// </summary>
|
||||
public interface ICountryCatalogRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get a paged sales item list
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(string countryCode, CatalogPaging paging);
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by id
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="salesItemId"></param>
|
||||
/// <returns></returns>
|
||||
Task<SalesItemView> GetSalesItemId(string countryCode, string salesItemId);
|
||||
|
||||
/// <summary>
|
||||
/// Overload Get sales item by sku and country code
|
||||
/// </summary>
|
||||
/// <param name="sku"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
Task<SalesItemView> GetSalesItemSku(string countryCode, string sku);
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by variant id
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="variantId"></param>
|
||||
/// <returns></returns>
|
||||
Task<SalesItemView> GetSalesVariantId(string countryCode, string variantId);
|
||||
|
||||
/// <summary>
|
||||
/// Complete catalog for print country
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<SalesItemView>> GetPriceList(string countryCode);
|
||||
}
|
|
@ -22,23 +22,22 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface for Customer Office Http repository
|
||||
/// </summary>
|
||||
public interface ICustomerOfficeHttpRepository
|
||||
public interface ICountryCustomerRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get customers paged for given country
|
||||
/// </summary>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
Task<PagingResponse<CompanyDto>> GetCompaniesPaged(CustomerPaging pagingParameters, string countryCode);
|
||||
Task<PagingResponse<CompanyDto>> GetCompaniesPaged(CustomerPaging paging);
|
||||
|
||||
/// <summary>
|
||||
/// Get customers paged for given sales rep
|
||||
/// </summary>
|
||||
/// <param name="salesRepId"></param>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
Task<PagingResponse<CompanyDto>> GetCompaniesPagedSalesRep(string salesRepId, CustomerPaging pagingParameters);
|
||||
Task<PagingResponse<CompanyDto>> GetCompaniesPagedSalesRep(string salesRepId, CustomerPaging paging);
|
||||
|
||||
/// <summary>
|
||||
/// Get customer by Id
|
|
@ -22,20 +22,20 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// Interface for Report http repository
|
||||
/// </summary>
|
||||
/// <remarks>Possibly duplicated in IReportHttpRepository</remarks>
|
||||
public interface IReportOfficeHttpRepository
|
||||
public interface ICountryReportRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get reports for given userId
|
||||
/// Get Reports for given userId (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<SalesReportListView>> GetReports(string userId);
|
||||
Task<List<SalesReportListView>> GetCountryReports(string userId);
|
||||
|
||||
/// <summary>
|
||||
/// Get report for given userId and workDate
|
||||
/// Get Report for given userId and workDate (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="workDate"></param>
|
||||
/// <returns></returns>
|
||||
Task<ReportView> GetReport(string userId, string workDate);
|
||||
Task<ReportView> GetCountryReport(string userId, string workDate);
|
||||
}
|
|
@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface Customer History CRM Http repository
|
||||
/// </summary>
|
||||
public interface ICustomerHistoryCrmHttpRepository
|
||||
public interface ICustomerHistoryRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Fetch Invoice LIst
|
|
@ -6,7 +6,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface for sending emai
|
||||
/// </summary>
|
||||
public interface ISendMailService
|
||||
public interface ISystemSendMailService
|
||||
{
|
||||
/// <summary>
|
||||
/// Send Mail
|
|
@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface for User handling over http
|
||||
/// </summary>
|
||||
public interface IUserHttpRepository
|
||||
public interface ISystemUserRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get Advisors (Office)
|
|
@ -20,7 +20,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface for processing orders in warehouse
|
||||
/// </summary>
|
||||
public interface IWarehouseHttpRepository
|
||||
public interface IWarehouseRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get warehouse order list by date
|
|
@ -21,7 +21,7 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
/// <summary>
|
||||
/// Interface for handling Customer Workplaces (chemical document service)
|
||||
/// </summary>
|
||||
public interface IWorkplaceCrmHttpRepository
|
||||
public interface IWorkplaceRepository
|
||||
{
|
||||
/// <summary>
|
||||
/// Get Workplaces for given customer id
|
|
@ -28,7 +28,7 @@ namespace Wonky.Client.HttpRepository;
|
|||
/// <summary>
|
||||
/// Implementing Interface Activity CRM Http repository
|
||||
/// </summary>
|
||||
public class ActivityCrmHttpRepository : IActivityCrmHttpRepository
|
||||
public class AdvisorActivityRepository : IAdvisorActivityRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -36,12 +36,12 @@ public class ActivityCrmHttpRepository : IActivityCrmHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<ActivityCrmHttpRepository> _logger;
|
||||
private ILogger<AdvisorActivityRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public ActivityCrmHttpRepository(HttpClient client,
|
||||
ILogger<ActivityCrmHttpRepository> logger,
|
||||
public AdvisorActivityRepository(HttpClient client,
|
||||
ILogger<AdvisorActivityRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
|
@ -31,7 +31,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
||||
public class AdvisorCatalogRepository : IAdvisorCatalogRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -39,12 +39,12 @@ public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<CatalogCrmHttpRepository> _logger;
|
||||
private ILogger<AdvisorCatalogRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _apiConfig;
|
||||
|
||||
public CatalogCrmHttpRepository(HttpClient client,
|
||||
ILogger<CatalogCrmHttpRepository> logger,
|
||||
public AdvisorCatalogRepository(HttpClient client,
|
||||
ILogger<AdvisorCatalogRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
||||
|
@ -58,7 +58,7 @@ public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
|||
/// </summary>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(CatalogPagingParams pagingParameters)
|
||||
public async Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(CatalogPaging pagingParameters)
|
||||
{
|
||||
var queryString = new Dictionary<string, string>
|
||||
{
|
||||
|
@ -68,6 +68,7 @@ public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
|||
["searchColumn"] = pagingParameters.SearchColumn,
|
||||
["searchTerm"] = pagingParameters.SearchTerm,
|
||||
["selectGroup"] = pagingParameters.SelectGroup == "0" ? "" : pagingParameters.SelectGroup,
|
||||
["countryCode"] = pagingParameters.CountryCode
|
||||
};
|
||||
var response = await _client
|
||||
.GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.Catalog}/page", queryString));
|
||||
|
@ -97,7 +98,7 @@ public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
|||
/// <param name="pagingParameters"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(CatalogPagingParams pagingParameters, string countryCode)
|
||||
public async Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(CatalogPaging pagingParameters, string countryCode)
|
||||
{
|
||||
var queryString = new Dictionary<string, string>
|
||||
{
|
||||
|
@ -107,6 +108,7 @@ public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
|||
["searchColumn"] = pagingParameters.SearchColumn,
|
||||
["searchTerm"] = pagingParameters.SearchTerm,
|
||||
["selectGroup"] = pagingParameters.SelectGroup == "0" ? "" : pagingParameters.SelectGroup,
|
||||
["countryCode"] = pagingParameters.CountryCode
|
||||
};
|
||||
var response = await _client
|
||||
.GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.Catalog}/{countryCode}/page", queryString));
|
||||
|
@ -142,24 +144,13 @@ public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
|||
return salesItem ?? new SalesItemView();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by sku
|
||||
/// </summary>
|
||||
/// <param name="sku"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<SalesItemView> GetSalesItemSku(string sku)
|
||||
{
|
||||
var salesItem = await _client.GetFromJsonAsync<SalesItemView>($"{_apiConfig.Catalog}/sku/{sku}");
|
||||
return salesItem ?? new SalesItemView();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overload Get sales item by sku and country code
|
||||
/// </summary>
|
||||
/// <param name="sku"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<SalesItemView> GetSalesItemSku(string sku, string countryCode)
|
||||
public async Task<SalesItemView> GetSalesItemSku(string countryCode, string sku)
|
||||
{
|
||||
var salesItem = await _client.GetFromJsonAsync<SalesItemView>($"{_apiConfig.Catalog}/{countryCode}/sku/{sku}");
|
||||
return salesItem ?? new SalesItemView();
|
||||
|
@ -195,5 +186,4 @@ public class CatalogCrmHttpRepository : ICatalogCrmHttpRepository
|
|||
{
|
||||
return await _client.GetFromJsonAsync<List<SalesItemView>>($"{_apiConfig.Catalog}/{countryCode}", _options);
|
||||
}
|
||||
|
||||
}
|
|
@ -8,7 +8,7 @@ using Wonky.Entity.DTO;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class ContactCrmHttpRepository : IContactCrmHttpRepository
|
||||
public class AdvisorContactRepository : IAdvisorContactRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new ()
|
||||
{
|
||||
|
@ -16,12 +16,12 @@ public class ContactCrmHttpRepository : IContactCrmHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<ContactCrmHttpRepository> _logger;
|
||||
private ILogger<AdvisorContactRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _conf;
|
||||
|
||||
public ContactCrmHttpRepository(HttpClient client,
|
||||
ILogger<ContactCrmHttpRepository> logger,
|
||||
public AdvisorContactRepository(HttpClient client,
|
||||
ILogger<AdvisorContactRepository> logger,
|
||||
NavigationManager navigation,
|
||||
IOptions<ApiConfig> apiConfig)
|
||||
{
|
|
@ -34,7 +34,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class CustomerCrmCrmHttpRepository : ICustomerCrmHttpRepository
|
||||
public class AdvisorCustomerRepository : IAdvisorCustomerRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new ()
|
||||
{
|
||||
|
@ -42,12 +42,12 @@ public class CustomerCrmCrmHttpRepository : ICustomerCrmHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<CustomerCrmCrmHttpRepository> _logger;
|
||||
private ILogger<AdvisorCustomerRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _conf;
|
||||
|
||||
public CustomerCrmCrmHttpRepository(HttpClient client,
|
||||
ILogger<CustomerCrmCrmHttpRepository> logger,
|
||||
public AdvisorCustomerRepository(HttpClient client,
|
||||
ILogger<AdvisorCustomerRepository> logger,
|
||||
NavigationManager navigation,
|
||||
IOptions<ApiConfig> apiConfig)
|
||||
{
|
|
@ -25,7 +25,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class ReportHttpRepository : IReportHttpRepository
|
||||
public class AdvisorReportRepository : IAdvisorReportRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -33,12 +33,12 @@ public class ReportHttpRepository : IReportHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<ReportHttpRepository> _logger;
|
||||
private ILogger<AdvisorReportRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _apiConfig;
|
||||
|
||||
public ReportHttpRepository(HttpClient client,
|
||||
ILogger<ReportHttpRepository> logger,
|
||||
public AdvisorReportRepository(HttpClient client,
|
||||
ILogger<AdvisorReportRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
||||
|
@ -111,25 +111,4 @@ public class ReportHttpRepository : IReportHttpRepository
|
|||
IsSuccess = result.IsSuccess
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Reports for given userId (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<SalesReportListView>> GetCountryReports(string userId)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<List<SalesReportListView>>($"{_apiConfig.OfficeReports}/{userId}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Report for given userId and workDate (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="workDate"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ReportView> GetCountryReport(string userId, string workDate)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<ReportView>($"{_apiConfig.OfficeReports}/{userId}/{workDate}");
|
||||
}
|
||||
}
|
|
@ -26,7 +26,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class TaskItemCrmHttpRepository : ITaskItemCrmHttpRepository
|
||||
public class AdvisorTaskItemRepository : IAdvisorTaskItemRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -35,12 +35,12 @@ public class TaskItemCrmHttpRepository : ITaskItemCrmHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<TaskItemCrmHttpRepository> _logger;
|
||||
private ILogger<AdvisorTaskItemRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _apiConfig;
|
||||
|
||||
public TaskItemCrmHttpRepository(HttpClient client,
|
||||
ILogger<TaskItemCrmHttpRepository> logger,
|
||||
public AdvisorTaskItemRepository(HttpClient client,
|
||||
ILogger<AdvisorTaskItemRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
144
Wonky.Client/HttpRepository/CountryCatalogRepository.cs
Normal file
144
Wonky.Client/HttpRepository/CountryCatalogRepository.cs
Normal file
|
@ -0,0 +1,144 @@
|
|||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
//
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
using Wonky.Client.Features;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.AspNetCore.WebUtilities;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Wonky.Client.HttpInterfaces;
|
||||
using Wonky.Entity.Configuration;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Requests;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class CountryCatalogRepository : ICountryCatalogRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNameCaseInsensitive = true
|
||||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<CountryCatalogRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _apiConfig;
|
||||
|
||||
public CountryCatalogRepository(HttpClient client,
|
||||
ILogger<CountryCatalogRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
||||
_logger = logger;
|
||||
_navigation = navigation;
|
||||
_apiConfig = configuration.Value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get a paged sales item list
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagingResponse<SalesItemView>> GetSalesItemsPaged(string countryCode, CatalogPaging paging)
|
||||
{
|
||||
var queryString = new Dictionary<string, string>
|
||||
{
|
||||
["pageNumber"] = paging.PageNumber.ToString(),
|
||||
["pageSize"] = paging.PageSize.ToString(),
|
||||
["orderBy"] = paging.OrderBy,
|
||||
["searchColumn"] = paging.SearchColumn,
|
||||
["searchTerm"] = paging.SearchTerm,
|
||||
["selectGroup"] = paging.SelectGroup == "0" ? "" : paging.SelectGroup,
|
||||
["countryCode"] = countryCode
|
||||
};
|
||||
var response = await _client
|
||||
.GetAsync(QueryHelpers.AddQueryString($"{_apiConfig.Catalog}/country/{countryCode}/page", queryString));
|
||||
|
||||
if (!response.IsSuccessStatusCode)
|
||||
{
|
||||
return new PagingResponse<SalesItemView>
|
||||
{
|
||||
Items = new List<SalesItemView>(),
|
||||
MetaData = new MetaData()
|
||||
};
|
||||
}
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
|
||||
var pagingResponse = new PagingResponse<SalesItemView>
|
||||
{
|
||||
Items = JsonSerializer.Deserialize<List<SalesItemView>>(content, _options),
|
||||
MetaData = JsonSerializer.Deserialize<MetaData>(
|
||||
response.Headers.GetValues("X-Pagination").First(), _options)
|
||||
};
|
||||
return pagingResponse;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by id
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="salesItemId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<SalesItemView> GetSalesItemId(string countryCode, string salesItemId)
|
||||
{
|
||||
var salesItem = await _client
|
||||
.GetFromJsonAsync<SalesItemView>($"{_apiConfig.Catalog}/country/{countryCode}/{salesItemId}");
|
||||
return salesItem ?? new SalesItemView();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overload Get sales item by sku and country code
|
||||
/// </summary>
|
||||
/// <param name="sku"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<SalesItemView> GetSalesItemSku(string countryCode, string sku)
|
||||
{
|
||||
var salesItem = await _client.GetFromJsonAsync<SalesItemView>($"{_apiConfig.Catalog}/country/{countryCode}/sku/{sku}");
|
||||
return salesItem ?? new SalesItemView();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get sales item by variant id
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="variantId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<SalesItemView> GetSalesVariantId(string countryCode, string variantId)
|
||||
{
|
||||
var salesItem = await _client
|
||||
.GetFromJsonAsync<SalesItemView>($"{_apiConfig.Catalog}/country/{countryCode}/variant/{variantId}");
|
||||
return salesItem ?? new SalesItemView();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Complete catalog for print country
|
||||
/// </summary>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<SalesItemView>> GetPriceList(string countryCode)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<List<SalesItemView>>($"{_apiConfig.Catalog}/country/{countryCode}", _options);
|
||||
}
|
||||
}
|
|
@ -34,7 +34,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class CustomerOfficeHttpRepository : ICustomerOfficeHttpRepository
|
||||
public class CountryCustomerRepository : ICountryCustomerRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new ()
|
||||
{
|
||||
|
@ -42,12 +42,12 @@ public class CustomerOfficeHttpRepository : ICustomerOfficeHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigator;
|
||||
private ILogger<CustomerOfficeHttpRepository> _logger;
|
||||
private ILogger<CountryCustomerRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public CustomerOfficeHttpRepository(HttpClient client,
|
||||
ILogger<CustomerOfficeHttpRepository> logger,
|
||||
public CountryCustomerRepository(HttpClient client,
|
||||
ILogger<CountryCustomerRepository> logger,
|
||||
NavigationManager navigator,
|
||||
IOptions<ApiConfig> apiConfig)
|
||||
{
|
||||
|
@ -60,21 +60,20 @@ public class CustomerOfficeHttpRepository : ICustomerOfficeHttpRepository
|
|||
/// <summary>
|
||||
/// Get customers paged for given sales rep
|
||||
/// </summary>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <param name="countryCode"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagingResponse<CompanyDto>> GetCompaniesPaged(CustomerPaging pagingParameters, string countryCode)
|
||||
public async Task<PagingResponse<CompanyDto>> GetCompaniesPaged(CustomerPaging paging)
|
||||
{
|
||||
var queryString = new Dictionary<string, string>
|
||||
{
|
||||
["pageNumber"] = pagingParameters.PageNumber.ToString(),
|
||||
["pageSize"] = pagingParameters.PageSize.ToString(),
|
||||
["searchTerm"] = pagingParameters.SearchTerm,
|
||||
["searchColumn"] = pagingParameters.SearchColumn,
|
||||
["orderBy"] = pagingParameters.OrderBy,
|
||||
["isHidden"] = pagingParameters.IsHidden.ToString(),
|
||||
["hasFolded"] = pagingParameters.HasFolded.ToString(),
|
||||
["countryCode"] = pagingParameters.CountryCode
|
||||
["pageNumber"] = paging.PageNumber.ToString(),
|
||||
["pageSize"] = paging.PageSize.ToString(),
|
||||
["searchTerm"] = paging.SearchTerm,
|
||||
["searchColumn"] = paging.SearchColumn,
|
||||
["orderBy"] = paging.OrderBy,
|
||||
["isHidden"] = paging.IsHidden.ToString(),
|
||||
["hasFolded"] = paging.HasFolded.ToString(),
|
||||
["countryCode"] = paging.CountryCode
|
||||
};
|
||||
|
||||
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}", queryString));
|
||||
|
@ -92,20 +91,20 @@ public class CustomerOfficeHttpRepository : ICustomerOfficeHttpRepository
|
|||
/// Get customers paged for given sales rep
|
||||
/// </summary>
|
||||
/// <param name="salesRepId"></param>
|
||||
/// <param name="pagingParameters"></param>
|
||||
/// <param name="paging"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<PagingResponse<CompanyDto>> GetCompaniesPagedSalesRep(string salesRepId, CustomerPaging pagingParameters)
|
||||
public async Task<PagingResponse<CompanyDto>> GetCompaniesPagedSalesRep(string salesRepId, CustomerPaging paging)
|
||||
{
|
||||
var queryString = new Dictionary<string, string>
|
||||
{
|
||||
["pageNumber"] = pagingParameters.PageNumber.ToString(),
|
||||
["pageSize"] = pagingParameters.PageSize.ToString(),
|
||||
["searchTerm"] = pagingParameters.SearchTerm,
|
||||
["searchColumn"] = pagingParameters.SearchColumn,
|
||||
["orderBy"] = pagingParameters.OrderBy,
|
||||
["isHidden"] = pagingParameters.IsHidden.ToString(),
|
||||
["hasFolded"] = pagingParameters.HasFolded.ToString(),
|
||||
["countryCode"] = pagingParameters.CountryCode
|
||||
["pageNumber"] = paging.PageNumber.ToString(),
|
||||
["pageSize"] = paging.PageSize.ToString(),
|
||||
["searchTerm"] = paging.SearchTerm,
|
||||
["searchColumn"] = paging.SearchColumn,
|
||||
["orderBy"] = paging.OrderBy,
|
||||
["isHidden"] = paging.IsHidden.ToString(),
|
||||
["hasFolded"] = paging.HasFolded.ToString(),
|
||||
["countryCode"] = paging.CountryCode
|
||||
};
|
||||
|
||||
var response = await _client.GetAsync(QueryHelpers.AddQueryString($"{_api.OfficeCustomers}/salesRep/{salesRepId}/", queryString));
|
70
Wonky.Client/HttpRepository/CountryReportRepository.cs
Normal file
70
Wonky.Client/HttpRepository/CountryReportRepository.cs
Normal file
|
@ -0,0 +1,70 @@
|
|||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
//
|
||||
|
||||
|
||||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Wonky.Client.HttpInterfaces;
|
||||
using Wonky.Entity.Configuration;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class CountryReportRepository : ICountryReportRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNameCaseInsensitive = true
|
||||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<CountryReportRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _apiConfig;
|
||||
|
||||
public CountryReportRepository(HttpClient client,
|
||||
ILogger<CountryReportRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
||||
_logger = logger;
|
||||
_navigation = navigation;
|
||||
_apiConfig = configuration.Value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Reports for given userId (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<SalesReportListView>> GetCountryReports(string userId)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<List<SalesReportListView>>($"{_apiConfig.OfficeReports}/{userId}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Report for given userId and workDate (Office)
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="workDate"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ReportView> GetCountryReport(string userId, string workDate)
|
||||
{
|
||||
return await _client.GetFromJsonAsync<ReportView>($"{_apiConfig.OfficeReports}/{userId}/{workDate}");
|
||||
}
|
||||
}
|
|
@ -25,7 +25,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class CustomerHistoryCrmHttpRepository : ICustomerHistoryCrmHttpRepository
|
||||
public class CustomerHistoryRepository : ICustomerHistoryRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -33,12 +33,12 @@ public class CustomerHistoryCrmHttpRepository : ICustomerHistoryCrmHttpRepositor
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<CustomerHistoryCrmHttpRepository> _logger;
|
||||
private ILogger<CustomerHistoryRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public CustomerHistoryCrmHttpRepository(
|
||||
HttpClient client, ILogger<CustomerHistoryCrmHttpRepository> logger,
|
||||
public CustomerHistoryRepository(
|
||||
HttpClient client, ILogger<CustomerHistoryRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
|
@ -10,7 +10,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class SendMailService : ISendMailService
|
||||
public class SystemSendMailService : ISystemSendMailService
|
||||
{
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -18,11 +18,11 @@ public class SendMailService : ISendMailService
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<SendMailService> _logger;
|
||||
private ILogger<SystemSendMailService> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public SendMailService(HttpClient client, ILogger<SendMailService> logger,
|
||||
public SystemSendMailService(HttpClient client, ILogger<SystemSendMailService> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
|
@ -25,7 +25,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class UserHttpRepository : IUserHttpRepository
|
||||
public class SystemUserRepository : ISystemUserRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -33,11 +33,11 @@ public class UserHttpRepository : IUserHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<UserHttpRepository> _logger;
|
||||
private ILogger<SystemUserRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public UserHttpRepository(HttpClient client, ILogger<UserHttpRepository> logger,
|
||||
public SystemUserRepository(HttpClient client, ILogger<SystemUserRepository> logger,
|
||||
NavigationManager navigation, IOptions<ApiConfig> configuration)
|
||||
{
|
||||
_client = client;
|
|
@ -23,7 +23,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class WarehouseHttpRepository : IWarehouseHttpRepository
|
||||
public class WarehouseRepository : IWarehouseRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -31,12 +31,12 @@ public class WarehouseHttpRepository : IWarehouseHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<WarehouseHttpRepository> _logger;
|
||||
private ILogger<WarehouseRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public WarehouseHttpRepository(HttpClient client,
|
||||
ILogger<WarehouseHttpRepository> logger,
|
||||
public WarehouseRepository(HttpClient client,
|
||||
ILogger<WarehouseRepository> logger,
|
||||
NavigationManager navigation,
|
||||
IOptions<ApiConfig> configuration)
|
||||
{
|
|
@ -24,7 +24,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class WorkplaceCrmHttpRepository : IWorkplaceCrmHttpRepository
|
||||
public class WorkplaceRepository : IWorkplaceRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -32,12 +32,12 @@ public class WorkplaceCrmHttpRepository : IWorkplaceCrmHttpRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<WorkplaceCrmHttpRepository> _logger;
|
||||
private ILogger<WorkplaceRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
public WorkplaceCrmHttpRepository(HttpClient client,
|
||||
ILogger<WorkplaceCrmHttpRepository> logger,
|
||||
public WorkplaceRepository(HttpClient client,
|
||||
ILogger<WorkplaceRepository> logger,
|
||||
NavigationManager navigation,
|
||||
IOptions<ApiConfig> configuration)
|
||||
{
|
|
@ -24,7 +24,7 @@
|
|||
<div class="card-header">
|
||||
<h3>Rapport Arkiv - @UserInfo.FirstName @UserInfo.LastName</h3>
|
||||
</div>
|
||||
<ReportTableOfficeComponent OnShowReport="ShowThisReport" CountryCode="@CountryCode" UserId="@UserId" ReportList="@ActivityReports" />
|
||||
<ReportListOfficeComponent OnShowReport="ShowThisReport" CountryCode="@CountryCode" UserId="@UserId" ReportList="@ActivityReports" />
|
||||
</div>
|
||||
|
||||
|
|
@ -23,13 +23,13 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ReportListOfficePage : IDisposable
|
||||
public partial class AdminReportListPage : IDisposable
|
||||
{
|
||||
[Parameter] public string UserId { get; set; } = "";
|
||||
[Parameter] public string CountryCode { get; set; } = "";
|
||||
[Inject] public IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] public ICountryReportRepository ReportRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IUserHttpRepository UserRepo { get; set; }
|
||||
[Inject] public ISystemUserRepository SystemUserRepo { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
private List<SalesReportListView> ActivityReports { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
|
@ -43,12 +43,19 @@ public partial class ReportListOfficePage : IDisposable
|
|||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
UserInfo = await UserRepo.GetAdvisorInfo(UserId);
|
||||
UserInfo = await SystemUserRepo.GetAdvisorInfo(UserId);
|
||||
while (string.IsNullOrWhiteSpace(UserInfo.UserId))
|
||||
{
|
||||
await Task.Delay(500);
|
||||
}
|
||||
|
||||
var reports = await ReportRepo.GetCountryReports(UserId);
|
||||
if (reports.Any())
|
||||
ActivityReports = reports.OrderByDescending(x => x.ReportDate).ToList();
|
||||
}
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
Working = false;
|
||||
}
|
||||
|
|
@ -23,7 +23,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ReportViewOfficePage : IDisposable
|
||||
public partial class AdminReportViewPage : IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// Country code from url parameter
|
||||
|
@ -53,7 +53,7 @@ public partial class ReportViewOfficePage : IDisposable
|
|||
/// Injected administrative report http repo
|
||||
/// </summary>
|
||||
[Inject]
|
||||
public IReportHttpRepository ReportRepo { get; set; }
|
||||
public ICountryReportRepository ReportRepo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Navigation Manager
|
||||
|
@ -65,7 +65,7 @@ public partial class ReportViewOfficePage : IDisposable
|
|||
/// Logger service
|
||||
/// </summary>
|
||||
[Inject]
|
||||
public ILogger<ReportViewOfficePage> Logger { get; set; }
|
||||
public ILogger<AdminReportViewPage> Logger { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Storage service
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@attribute [Authorize(Roles = "Admin,Office")]
|
||||
@attribute [Authorize(Roles = "Admin")]
|
||||
@page "/office/users/advisors/{CountryCode}"
|
||||
|
||||
<div class="card">
|
|
@ -5,10 +5,10 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class CountrySalesRepListPage
|
||||
public partial class AdminSalesRepListPage
|
||||
{
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IUserHttpRepository UserRepo { get; set; }
|
||||
[Inject] public ISystemUserRepository SystemUserRepo { get; set; }
|
||||
[Parameter] public string CountryCode { get; set; } = "";
|
||||
private List<UserListAdminView> SalesReps { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
|
@ -17,7 +17,7 @@ public partial class CountrySalesRepListPage
|
|||
{
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
var AdvisorList = await UserRepo.GetAdvisors();
|
||||
var AdvisorList = await SystemUserRepo.GetAdvisors();
|
||||
SalesReps = AdvisorList
|
||||
.Where(x => x.CountryCode.ToLower() == CountryCode && Convert.ToInt32(x.SalesRep) < 100)
|
||||
.ToList();
|
|
@ -15,11 +15,10 @@
|
|||
//
|
||||
*@
|
||||
|
||||
@page "/price-catalog"
|
||||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@attribute [Authorize(Roles = "Advisor,Admin,Office")]
|
||||
@attribute [Authorize(Roles = "Advisor")]
|
||||
@page "/price-catalog"
|
||||
|
||||
<div class="sticky-top bg-dark rounded-2 px-3">
|
||||
<div class="row g-3 mb-3">
|
||||
|
@ -46,7 +45,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<CatalogTableComponent ItemList="Items"/>
|
||||
<CatalogListComponent ItemList="Items"/>
|
||||
@if (Working)
|
||||
{
|
||||
<WorkingThreeDots />
|
|
@ -29,15 +29,15 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class CatalogPage : IDisposable
|
||||
public partial class AdvisorCatalogPage : IDisposable
|
||||
{
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public ICatalogCrmHttpRepository ItemRepo { get; set; }
|
||||
[Inject] public IAdvisorCatalogRepository ItemRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public UserProfileService ProfileService { get; set; }
|
||||
private List<SalesItemView> Items { get; set; } = new();
|
||||
private MetaData MetaInfo { get; set; } = new();
|
||||
private CatalogPagingParams PageParams = new();
|
||||
private CatalogPaging _page = new();
|
||||
private UserPref Prefs = new();
|
||||
private UserInfoView UserInfo { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
|
@ -47,11 +47,11 @@ public partial class CatalogPage : IDisposable
|
|||
Prefs = await ProfileService.GetPreferences();
|
||||
UserInfo = await Storage.GetItemAsync<UserInfoView>("_xu");
|
||||
|
||||
PageParams.CountryCode = UserInfo.CountryCode;
|
||||
_page.CountryCode = UserInfo.CountryCode;
|
||||
|
||||
PageParams.OrderBy = Prefs.ItemSort;
|
||||
PageParams.SearchColumn = Prefs.ItemSearch;
|
||||
PageParams.PageSize = Convert.ToInt32(Prefs.PageSize);
|
||||
_page.OrderBy = Prefs.ItemSort;
|
||||
_page.SearchColumn = Prefs.ItemSearch;
|
||||
_page.PageSize = Convert.ToInt32(Prefs.PageSize);
|
||||
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
@ -62,53 +62,53 @@ public partial class CatalogPage : IDisposable
|
|||
private async Task SetSearchPhrase(string searchTerm)
|
||||
{
|
||||
Items = new List<SalesItemView>();
|
||||
PageParams.PageNumber = 1;
|
||||
PageParams.SearchTerm = searchTerm;
|
||||
_page.PageNumber = 1;
|
||||
_page.SearchTerm = searchTerm;
|
||||
await FetchSalesItems();
|
||||
}
|
||||
|
||||
private async Task SetPageSize(string pageSize)
|
||||
{
|
||||
Items = new List<SalesItemView>();
|
||||
PageParams.PageSize = Convert.ToInt32(pageSize);
|
||||
PageParams.PageNumber = 1;
|
||||
_page.PageSize = Convert.ToInt32(pageSize);
|
||||
_page.PageNumber = 1;
|
||||
await FetchSalesItems();
|
||||
}
|
||||
|
||||
private async Task SetSearchCol(string columnName)
|
||||
{
|
||||
Items = new List<SalesItemView>();
|
||||
PageParams.PageNumber = 1;
|
||||
PageParams.SearchColumn = columnName;
|
||||
_page.PageNumber = 1;
|
||||
_page.SearchColumn = columnName;
|
||||
await FetchSalesItems();
|
||||
}
|
||||
|
||||
private async Task SetSortCol(string orderBy)
|
||||
{
|
||||
Items = new List<SalesItemView>();
|
||||
PageParams.OrderBy = orderBy;
|
||||
_page.OrderBy = orderBy;
|
||||
await FetchSalesItems();
|
||||
}
|
||||
|
||||
private async Task SetSelectedPage(int page)
|
||||
{
|
||||
Items = new List<SalesItemView>();
|
||||
PageParams.PageNumber = page;
|
||||
_page.PageNumber = page;
|
||||
await FetchSalesItems();
|
||||
}
|
||||
|
||||
private async Task SetGroupCol(string groupFilter)
|
||||
{
|
||||
Items = new List<SalesItemView>();
|
||||
PageParams.PageNumber = 1;
|
||||
PageParams.SelectGroup = groupFilter;
|
||||
_page.PageNumber = 1;
|
||||
_page.SelectGroup = groupFilter;
|
||||
await FetchSalesItems();
|
||||
}
|
||||
|
||||
private async Task FetchSalesItems()
|
||||
{
|
||||
Working = true;
|
||||
var pagingResponse = await ItemRepo.GetSalesItemsPaged(PageParams);
|
||||
var pagingResponse = await ItemRepo.GetSalesItemsPaged(_page);
|
||||
Working = false;
|
||||
Items = pagingResponse.Items!;
|
||||
MetaInfo = pagingResponse.MetaData;
|
|
@ -15,10 +15,10 @@
|
|||
//
|
||||
*@
|
||||
|
||||
@page "/companies/{CompanyId}/activities/new"
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@attribute [Authorize(Roles = "Advisor")]
|
||||
@using Wonky.Client.Components
|
||||
@attribute [Authorize(Roles = "Advisor")]
|
||||
@page "/companies/{CompanyId}/activities/new"
|
||||
|
||||
<div class="row bg-dark text-white rounded-2 mb-2 py-2 align-items-center">
|
||||
<div class="col">
|
||||
|
@ -40,7 +40,12 @@
|
|||
|
||||
@if (ReportClosed)
|
||||
{
|
||||
<h5>Der kan ikke oprettes besøg når der findes rapport for @SelectedDate.ToShortDateString()</h5>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3>Der kan ikke oprettes besøg når der findes rapport for @SelectedDate.ToShortDateString()</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
}
|
||||
else
|
||||
{
|
|
@ -31,23 +31,23 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ActivityCreateCrmPage : IDisposable
|
||||
public partial class AdvisorCreateActivityPage : IDisposable
|
||||
{
|
||||
// Parameters
|
||||
[CascadingParameter] DraftStateProvider DraftProvider { get; set; }
|
||||
[Parameter] public string CompanyId { get; set; }
|
||||
// Services
|
||||
[Inject] public ILogger<ActivityCreateCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorCreateActivityPage> Logger { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public UserProfileService Profiles { get; set; }
|
||||
[Inject] public IToastService Toast { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public ICatalogCrmHttpRepository CatalogCrm { get; set; }
|
||||
[Inject] public ICustomerCrmHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public IActivityCrmHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] public ICustomerHistoryCrmHttpRepository HistoryRepo { get; set; }
|
||||
[Inject] public IAdvisorCatalogRepository AdvisorCatalogCrm { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||
[Inject] public ICustomerHistoryRepository HistoryRepo { get; set; }
|
||||
// variables
|
||||
private readonly JsonSerializerOptions? _options = new() {PropertyNameCaseInsensitive = true};
|
||||
private SalesItemView SelectedItem { get; set; } = new();
|
||||
|
@ -136,7 +136,7 @@ public partial class ActivityCreateCrmPage : IDisposable
|
|||
// Initialize date variable
|
||||
SelectedDate = string.IsNullOrWhiteSpace(UserPrefs.WorkDate) ? DateTime.Now : DateTime.Parse(UserPrefs.WorkDate);
|
||||
// raise flag if report is closed
|
||||
ReportClosed = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||
ReportClosed = await AdvisorReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||
// Ask for confirmation of date
|
||||
Logger.LogDebug("Preferences.DateConfirmed => {}", UserPrefs.DateConfirmed);
|
||||
if (!UserPrefs.DateConfirmed)
|
||||
|
@ -236,7 +236,7 @@ public partial class ActivityCreateCrmPage : IDisposable
|
|||
/// <param name="workDate"></param>
|
||||
private async Task WorkDateComponentCallback(string workDate)
|
||||
{
|
||||
ReportClosed = await ReportRepo.ReportExist(workDate);
|
||||
ReportClosed = await AdvisorReportRepo.ReportExist(workDate);
|
||||
SelectedDate = DateTime.Parse(workDate);
|
||||
Activity.ActivityDate = workDate;
|
||||
}
|
||||
|
@ -258,7 +258,7 @@ public partial class ActivityCreateCrmPage : IDisposable
|
|||
// get selected item
|
||||
if (string.IsNullOrWhiteSpace(sku.ItemId))
|
||||
return;
|
||||
SelectedItem = await CatalogCrm.GetSalesItemId(sku.ItemId);
|
||||
SelectedItem = await AdvisorCatalogCrm.GetSalesItemId(sku.ItemId);
|
||||
ShowItem = true;
|
||||
Price = sku.Rate;
|
||||
Quantity = sku.Quantity;
|
||||
|
@ -361,7 +361,7 @@ public partial class ActivityCreateCrmPage : IDisposable
|
|||
// debug logging
|
||||
Logger.LogDebug("CrmNewActivityPage => \n {}", JsonSerializer.Serialize(Activity));
|
||||
// post to api
|
||||
var result = await ActivityRepo.CreateActivity(Activity);
|
||||
var result = await AdvisorActivityRepo.CreateActivity(Activity);
|
||||
// debug logging
|
||||
Logger.LogDebug("ApiResponseView => \n {}", JsonSerializer.Serialize(result));
|
||||
// show result message
|
|
@ -37,13 +37,13 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages
|
||||
{
|
||||
public partial class CustomerCreateCrmPage : IDisposable
|
||||
public partial class AdvisorCreateCustomerPage : IDisposable
|
||||
{
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ILogger<CustomerCreateCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorCreateCustomerPage> Logger { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ICustomerCrmHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public VatInfoLookupService VatService { get; set; }
|
||||
private EditContext CompanyContext { get; set; }
|
|
@ -17,8 +17,8 @@
|
|||
|
||||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@page "/companies/{CompanyId}/activities"
|
||||
@attribute [Authorize(Roles = "Advisor")]
|
||||
@page "/companies/{CompanyId}/activities"
|
||||
|
||||
@if (!string.IsNullOrWhiteSpace(Company.Name))
|
||||
{
|
|
@ -25,12 +25,12 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ActivityListCustomerPage : IDisposable
|
||||
public partial class AdvisorCustomerActivityListPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] public HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] public IActivityCrmHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public ICustomerCrmHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
private List<ReportItemView> Activities { get; set; } = new();
|
||||
private CompanyDto Company { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
|
@ -48,7 +48,7 @@ public partial class ActivityListCustomerPage : IDisposable
|
|||
private async Task GetActivities()
|
||||
{
|
||||
Working = true;
|
||||
Activities = await ActivityRepo.GetCustomerActivities(CompanyId);
|
||||
Activities = await AdvisorActivityRepo.GetCustomerActivities(CompanyId);
|
||||
if(Activities.Any())
|
||||
Activities = Activities.OrderByDescending(x => x.OrderDate).ToList();
|
||||
Working = false;
|
|
@ -19,6 +19,7 @@
|
|||
@using Microsoft.AspNetCore.Authorization
|
||||
@page "/companies/{CompanyId}/h/i"
|
||||
@attribute [Authorize(Roles = "Advisor")]
|
||||
|
||||
<div class="row pt-2 pb-1 rounded-2 bg-dark text-white">
|
||||
<div class="col-sm-6">
|
||||
<h4 class="pt-1">@Company.Name</h4>
|
||||
|
@ -30,8 +31,10 @@
|
|||
<a class="btn btn-primary d-block" href="/companies/@Company.CompanyId/activities/new"><i class="bi-arrow-right"></i> Nyt Besøg</a>
|
||||
</div>
|
||||
</div>
|
||||
<CustomerProductTableComponent CompanyId="@CompanyId" ProductList="Inventory"/>
|
||||
|
||||
<CustomerInventoryListComponent OnReorderSelected="OnReorderCallback" CompanyId="@CompanyId" Inventory="@Inventory" />
|
||||
|
||||
<InventoryReorderModal OnSelected="@OnSelectedItem" CompanyId="@CompanyId" SalesItem="@SalesItem" @ref="ReorderModal"/>
|
||||
|
||||
@if (Working)
|
||||
{
|
|
@ -22,25 +22,38 @@ using Microsoft.AspNetCore.Components;
|
|||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpInterfaces;
|
||||
using Wonky.Client.HttpRepository;
|
||||
using Wonky.Client.Models;
|
||||
using Wonky.Client.Shared;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class CustomerProductListCrmPage : IDisposable
|
||||
public partial class AdvisorCustomerInventoryListPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] public ICustomerHistoryCrmHttpRepository HistoryRepo { get; set; }
|
||||
[Inject] public ICustomerCrmHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public ICustomerHistoryRepository HistoryRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ILogger<CustomerProductListCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerInventoryListPage> Logger { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public IAdvisorCatalogRepository AdvisorCatalogRepo { get; set; }
|
||||
|
||||
[CascadingParameter] public DraftStateProvider DraftStateProvider { get; set; } = new();
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
|
||||
private JsonSerializerOptions _options = new JsonSerializerOptions(JsonSerializerDefaults.Web);
|
||||
private CompanyDto Company { get; set; } = new();
|
||||
private List<ProductInventoryView> Inventory { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
|
||||
private SalesItemView SalesItem { get; set; } = new();
|
||||
private string Price { get; set; } = "0";
|
||||
private string Quantity { get; set; } = "1";
|
||||
private string Sku { get; set; } = "";
|
||||
private InventoryReorderModal ReorderModal { get; set; } = new();
|
||||
private SelectedSku Item { get; set; } = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Interceptor.RegisterEvent();
|
||||
|
@ -50,7 +63,7 @@ public partial class CustomerProductListCrmPage : IDisposable
|
|||
|
||||
while (string.IsNullOrWhiteSpace(Company.HistorySync))
|
||||
{
|
||||
await Task.Delay(1000);
|
||||
await Task.Delay(500);
|
||||
}
|
||||
|
||||
var pDate = await Storage.GetItemAsStringAsync($"{Company.CompanyId}-pDate");
|
||||
|
@ -69,6 +82,22 @@ public partial class CustomerProductListCrmPage : IDisposable
|
|||
Working = false;
|
||||
}
|
||||
|
||||
private async Task OnReorderCallback(string sku)
|
||||
{
|
||||
// fetch item from http repo
|
||||
SalesItem = await AdvisorCatalogRepo.GetSalesItemSku(Company.CountryCode.ToLower(), sku);
|
||||
ReorderModal.Show();
|
||||
}
|
||||
|
||||
private async Task OnSelectedItem(DraftItem draftItem)
|
||||
{
|
||||
// add item to order draft
|
||||
DraftStateProvider.Draft.DraftType = "order";
|
||||
DraftStateProvider.Draft.Items.Add(draftItem);
|
||||
// set item checked
|
||||
await DraftStateProvider.SaveChangesAsync();
|
||||
}
|
||||
|
||||
private async Task<List<ProductInventoryView>> FetchProductInventory()
|
||||
{
|
||||
var storage = await Storage.GetItemAsStringAsync($"{Company.CompanyId}-products");
|
42
Wonky.Client/Pages/AdvisorCustomerInvoiceListPage.razor
Normal file
42
Wonky.Client/Pages/AdvisorCustomerInvoiceListPage.razor
Normal file
|
@ -0,0 +1,42 @@
|
|||
@*
|
||||
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||
//
|
||||
*@
|
||||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@page "/companies/{CompanyId}/invoices"
|
||||
@attribute [Authorize(Roles = "Advisor")]
|
||||
|
||||
@if (!string.IsNullOrWhiteSpace(Company.Name))
|
||||
{
|
||||
<div class="row pt-2 pb-1 rounded-2 bg-dark text-white">
|
||||
<div class="col-sm-6">
|
||||
<h4 class="pt-1">@Company.Name</h4>
|
||||
</div>
|
||||
<div class="col-sm-3 align-content-end">
|
||||
<a class="btn btn-primary d-block" href="/companies/@Company.CompanyId"><i class="bi-arrow-right"></i> Kundekort</a>
|
||||
</div>
|
||||
<div class="col-sm-3 align-content-end">
|
||||
<a class="btn btn-primary d-block" href="/companies/@Company.CompanyId/activities/new"><i class="bi-arrow-right"></i> Besøg</a>
|
||||
</div>
|
||||
</div>
|
||||
<CustomerInvoiceListComponent OnShowInvoice="CallInvoiceModal" CompanyId="@CompanyId" InvoiceList="@CompanyInvoices.Invoices"/>
|
||||
<InvoiceViewModal CompanyId="@CompanyId" InvoiceId="@InvoiceId" @ref="InvoiceView" />
|
||||
}
|
||||
|
||||
@if (Working)
|
||||
{
|
||||
<WorkingThreeDots />
|
||||
}
|
|
@ -6,23 +6,26 @@ using Blazored.Toast.Services;
|
|||
using Microsoft.AspNetCore.Components;
|
||||
using Wonky.Client.HttpInterceptors;
|
||||
using Wonky.Client.HttpInterfaces;
|
||||
using Wonky.Client.Shared;
|
||||
using Wonky.Entity.DTO;
|
||||
using Wonky.Entity.Views;
|
||||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class CustomerInvoiceListCrmPage : IDisposable
|
||||
public partial class AdvisorCustomerInvoiceListPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] public ICustomerCrmHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public ICustomerHistoryCrmHttpRepository HistoryRepo { get; set; }
|
||||
[Inject] public ICustomerHistoryRepository HistoryRepo { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public ILogger<CustomerInvoiceListCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerInvoiceListPage> Logger { get; set; }
|
||||
private InvoiceListView CompanyInvoices { get; set; } = new();
|
||||
private CompanyDto Company { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
private InvoiceViewModal InvoiceView { get; set; } = new();
|
||||
private string InvoiceId { get; set; } = "";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
|
@ -52,6 +55,12 @@ public partial class CustomerInvoiceListCrmPage : IDisposable
|
|||
Working = false;
|
||||
}
|
||||
|
||||
private void CallInvoiceModal(string invoiceId)
|
||||
{
|
||||
InvoiceId = invoiceId;
|
||||
InvoiceView.Show();
|
||||
}
|
||||
|
||||
private async Task<InvoiceListView> FetchCompanyInvoices()
|
||||
{
|
||||
var storage = await Storage.GetItemAsStringAsync($"{Company.CompanyId}-invoices");
|
|
@ -15,10 +15,9 @@
|
|||
//
|
||||
*@
|
||||
|
||||
@page "/companies"
|
||||
@using Wonky.Client.Components
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
|
||||
@page "/companies"
|
||||
@attribute [Authorize(Roles = "Advisor")]
|
||||
|
||||
<div class="sticky-top bg-dark text-light rounded-2 px-3">
|
|
@ -28,11 +28,11 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages
|
||||
{
|
||||
public partial class CustomerListCrmPage : IDisposable
|
||||
public partial class AdvisorCustomerListPage : IDisposable
|
||||
{
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public UserProfileService ProfileService { get; set; }
|
||||
[Inject] public ICustomerCrmHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
private List<CompanyDto> Companies { get; set; } = new();
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
@using Microsoft.AspNetCore.Authorization
|
||||
@using Wonky.Client.Components
|
||||
@attribute [Authorize(Roles = "Admin,Advisor,Office,Warehouse")]
|
||||
@attribute [Authorize(Roles = "Admin,Advisor,Warehouse")]
|
||||
@page "/office/customers/{CompanyId}/orders/{OrderId}"
|
||||
|
||||
<table class="table table-sm table-striped d-print-table">
|
|
@ -30,16 +30,16 @@ using Wonky.Client.Services;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class OfficeOrderViewPage : IDisposable
|
||||
public partial class AdvisorCustomerOrderViewPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Parameter] public string OrderId { get; set; } = "";
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IActivityCrmHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public ISendMailService MailService { get; set; }
|
||||
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||
[Inject] public ISystemSendMailService MailService { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public IUserHttpRepository UserRepo { get; set; }
|
||||
[Inject] public ILogger<OfficeOrderViewPage> Logger { get; set; }
|
||||
[Inject] public ISystemUserRepository SystemUserRepo { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerOrderViewPage> Logger { get; set; }
|
||||
[Inject] public IToastService Toast { get; set; }
|
||||
private ReportItemView _reportItem { get; set; } = new();
|
||||
private bool _isNotified { get; set; }
|
||||
|
@ -55,7 +55,7 @@ public partial class OfficeOrderViewPage : IDisposable
|
|||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
// fetch order from backend
|
||||
_reportItem = await ActivityRepo.GetReportItem(OrderId);
|
||||
_reportItem = await AdvisorActivityRepo.GetReportItem(OrderId);
|
||||
Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(_reportItem, _options));
|
||||
Working = false;
|
||||
}
|
||||
|
@ -71,12 +71,12 @@ public partial class OfficeOrderViewPage : IDisposable
|
|||
Working = true;
|
||||
Logger.LogDebug("GetExpressState => {}", JsonSerializer.Serialize(_reportItem, _options));
|
||||
// send request to backend
|
||||
var responseView = await ActivityRepo.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 Storage.GetItemAsync<UserInfoView>("_xu");
|
||||
// fetch sales rep from response
|
||||
var salesRep = await UserRepo.GetAdvisorInfo(responseView.Id);
|
||||
var salesRep = await SystemUserRepo.GetAdvisorInfo(responseView.Id);
|
||||
Logger.LogDebug("SetExpressState => salesRep => {}", JsonSerializer.Serialize(salesRep));
|
||||
// create email notification body
|
||||
var body = new StringBuilder();
|
|
@ -21,6 +21,7 @@
|
|||
@attribute [Authorize(Roles = "Advisor")]
|
||||
@page "/companies/{CompanyId}"
|
||||
|
||||
|
||||
@if (!string.IsNullOrWhiteSpace(Company.Account))
|
||||
{
|
||||
@if (!string.IsNullOrWhiteSpace(Company.Blocked))
|
|
@ -31,15 +31,15 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class CustomerViewCrmPage : IDisposable
|
||||
public partial class AdvisorCustomerViewPage : IDisposable
|
||||
{
|
||||
[Parameter] public string CompanyId { get; set; } = "";
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ILogger<CustomerViewCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerViewPage> Logger { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ICustomerCrmHttpRepository CompanyRepo { get; set; }
|
||||
[Inject] public ICustomerHistoryCrmHttpRepository HistoryRepo { get; set; }
|
||||
[Inject] public IContactCrmHttpRepository ContactRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||
[Inject] public ICustomerHistoryRepository HistoryRepo { get; set; }
|
||||
[Inject] public IAdvisorContactRepository AdvisorContactRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public VatInfoLookupService VatService { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
|
@ -150,7 +150,7 @@ public partial class CustomerViewCrmPage : IDisposable
|
|||
private async Task FetchContacts(string companyId)
|
||||
{
|
||||
// load contacts
|
||||
Contacts = await ContactRepo.GetContacts(companyId);
|
||||
Contacts = await AdvisorContactRepo.GetContacts(companyId);
|
||||
if(Contacts.Any() && Contacts.Count > 1)
|
||||
Contacts = Contacts.OrderBy(x => x.FirstName).ToList();
|
||||
}
|
||||
|
@ -216,14 +216,14 @@ public partial class CustomerViewCrmPage : IDisposable
|
|||
// new contact created
|
||||
Logger.LogDebug("create => {}", jsonContact);
|
||||
// send post request to backend
|
||||
await ContactRepo.CreateContact(contact);
|
||||
await AdvisorContactRepo.CreateContact(contact);
|
||||
}
|
||||
else
|
||||
{
|
||||
// contact modified
|
||||
Logger.LogDebug("update => {}", jsonContact);
|
||||
// send put request to backend
|
||||
await ContactRepo.UpdateContact(contact);
|
||||
await AdvisorContactRepo.UpdateContact(contact);
|
||||
}
|
||||
// reset selected contact
|
||||
SelectedContact = new ContactDto();
|
||||
|
@ -241,7 +241,7 @@ public partial class CustomerViewCrmPage : IDisposable
|
|||
Working = true;
|
||||
Logger.LogDebug("delete {}", contactId);
|
||||
// send delete request to backend
|
||||
await ContactRepo.DeleteContact(CompanyId, contactId);
|
||||
await AdvisorContactRepo.DeleteContact(CompanyId, contactId);
|
||||
// reset selected contact
|
||||
SelectedContact = new ContactDto();
|
||||
// reload contacts from backend
|
|
@ -13,11 +13,11 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class QuoteListCrmPage : IDisposable
|
||||
public partial class AdvisorQuoteListPage : IDisposable
|
||||
{
|
||||
[Inject] public IActivityCrmHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public ILogger<QuoteListCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorQuoteListPage> Logger { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
private List<ReportItemView> Quotes { get; set; } = new();
|
||||
|
@ -29,7 +29,7 @@ public partial class QuoteListCrmPage : IDisposable
|
|||
{
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
Quotes = await ActivityRepo.GetQuotes();
|
||||
Quotes = await AdvisorActivityRepo.GetQuotes();
|
||||
await Storage.SetItemAsync("quotes", Quotes.OrderBy(x => x.Company.Name));
|
||||
if (Quotes.Any())
|
||||
await FilterQuotes(QFilter);
|
||||
|
@ -57,12 +57,12 @@ public partial class QuoteListCrmPage : IDisposable
|
|||
if (args.Status == QStatus.Win)
|
||||
quote.OrderDate = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
quote.QuoteStatusEnum = Utils.EnumToString(args.Status);
|
||||
var response = await ActivityRepo.UpdateQuoteStatus(quote);
|
||||
var response = await AdvisorActivityRepo.UpdateQuoteStatus(quote);
|
||||
Toaster.ShowInfo($"{response.Message}", $"HTTP STATUS {response.Code}");
|
||||
|
||||
Quotes = new List<ReportItemView>();
|
||||
await Storage.RemoveItemAsync("quotes");
|
||||
Quotes = await ActivityRepo.GetQuotes();
|
||||
Quotes = await AdvisorActivityRepo.GetQuotes();
|
||||
while (!Quotes.Any())
|
||||
await Task.Delay(1000);
|
||||
|
|
@ -27,14 +27,14 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ReportCreateCrmPage : IDisposable
|
||||
public partial class AdvisorReportCreatePage : IDisposable
|
||||
{
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public UserProfileService ProfileService { get; set; }
|
||||
[Inject] public IActivityCrmHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ILogger<ReportCreateCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorReportCreatePage> Logger { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
private EditContext ReportContext { get; set; }
|
||||
private ReportDto Report { get; set; } = new();
|
||||
|
@ -130,7 +130,7 @@ public partial class ReportCreateCrmPage : IDisposable
|
|||
return;
|
||||
Working = true;
|
||||
|
||||
var result = await ReportRepo.CreateReport($"{_workDate:yyyy-MM-dd}", Report);
|
||||
var result = await AdvisorReportRepo.CreateReport($"{_workDate:yyyy-MM-dd}", Report);
|
||||
Toaster.ShowInfo($"{result.Message}", $"HTTP Status");
|
||||
|
||||
// reset km and date confirmation
|
||||
|
@ -250,7 +250,7 @@ public partial class ReportCreateCrmPage : IDisposable
|
|||
InitialValues = new ReportFiguresDto();
|
||||
Activities = new List<ReportItemView>();
|
||||
|
||||
var data = await ReportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}");
|
||||
var data = await AdvisorReportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}");
|
||||
if(data.ReportClosed)
|
||||
Navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}");
|
||||
|
|
@ -21,10 +21,10 @@
|
|||
@page "/sales-reports"
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-header bg-dark text-white">
|
||||
<h3>Rapport Arkiv</h3>
|
||||
</div>
|
||||
<ReportTableCrmComponent ReportList="ReportList" OnShowReport="ShowThisReport"/>
|
||||
<ReportListComponent ReportList="ReportList" OnShowReport="ShowThisReport"/>
|
||||
</div>
|
||||
|
||||
|
|
@ -22,12 +22,12 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ReportListCrmPage : IDisposable
|
||||
public partial class AdvisorReportListPage : IDisposable
|
||||
{
|
||||
[Inject] public IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ILogger<ReportListCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorReportListPage> Logger { get; set; }
|
||||
|
||||
private List<SalesReportListView> ReportList { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
|
@ -37,7 +37,7 @@ public partial class ReportListCrmPage : IDisposable
|
|||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
ReportList = await ReportRepo.GetReports();
|
||||
ReportList = await AdvisorReportRepo.GetReports();
|
||||
if (ReportList.Any())
|
||||
ReportList = ReportList.OrderByDescending(x => x.ReportDate).ToList();
|
||||
|
|
@ -23,14 +23,14 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ReportViewCrmPage : IDisposable
|
||||
public partial class AdvisorReportViewPage : IDisposable
|
||||
{
|
||||
[Parameter] public string ReportDate { get; set; }
|
||||
[Inject] public IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public ILogger<ReportViewCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorReportViewPage> Logger { get; set; }
|
||||
[Inject] public UserProfileService ProfileService { get; set; }
|
||||
|
||||
private UserPref Prefs { get; set; } = new();
|
||||
|
@ -101,7 +101,7 @@ public partial class ReportViewCrmPage : IDisposable
|
|||
Working = true;
|
||||
|
||||
// fetch report
|
||||
Report = await ReportRepo.GetReport(workDate);
|
||||
Report = await AdvisorReportRepo.GetReport(workDate);
|
||||
|
||||
// extract activities
|
||||
Activities = Report.ReportItems.Where(x => x.Lines.Any()).ToList();
|
|
@ -25,13 +25,13 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class TaskItemListCrmPage : IDisposable
|
||||
public partial class AdvisorTaskItemListCrmPage : IDisposable
|
||||
{
|
||||
[Inject] public UserProfileService UserProfileService { get; set; }
|
||||
[Inject] public ILogger<TaskItemListCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorTaskItemListCrmPage> Logger { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ITaskItemCrmHttpRepository TaskRepo { get; set; }
|
||||
[Inject] public IAdvisorTaskItemRepository AdvisorTaskRepo { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
private UserPref Prefs { get; set; } = new();
|
||||
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
|
@ -55,7 +55,7 @@ public partial class TaskItemListCrmPage : IDisposable
|
|||
{
|
||||
Working = true;
|
||||
Toaster.ShowInfo("Vent nogle sekunder for data");
|
||||
TaskItems = await TaskRepo.GetTaskList(workDate);
|
||||
TaskItems = await AdvisorTaskRepo.GetTaskList(workDate);
|
||||
|
||||
Toaster.ClearAll();
|
||||
Working = false;
|
|
@ -24,11 +24,11 @@ using Wonky.Entity.DTO;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class TaskItemViewCrmPage : IDisposable
|
||||
public partial class AdvisorTaskItemViewCrmPage : IDisposable
|
||||
{
|
||||
[Parameter] public string TaskItemId { get; set; }
|
||||
[Inject] public HttpInterceptorService _interceptor { get; set; }
|
||||
[Inject] public ITaskItemCrmHttpRepository TaskRepo { get; set; }
|
||||
[Inject] public IAdvisorTaskItemRepository AdvisorTaskRepo { get; set; }
|
||||
private TaskItemDto _taskItem = new ();
|
||||
private EditContext _editContext { get; set; }
|
||||
private bool Working { get; set; } = true;
|
||||
|
@ -39,7 +39,7 @@ public partial class TaskItemViewCrmPage : IDisposable
|
|||
_interceptor.RegisterEvent();
|
||||
_interceptor.RegisterBeforeSendEvent();
|
||||
|
||||
_taskItem = await TaskRepo.GetTaskItem(TaskItemId);
|
||||
_taskItem = await AdvisorTaskRepo.GetTaskItem(TaskItemId);
|
||||
Console.WriteLine(JsonSerializer.Serialize(_taskItem));
|
||||
Working = false;
|
||||
}
|
|
@ -40,7 +40,7 @@
|
|||
</div>
|
||||
@if (ReportStatusView.ReportItems.Any())
|
||||
{
|
||||
<ActivityTableCrmComponent ActivityList="ReportStatusView.ReportItems"/>
|
||||
<ActivityListComponent ActivityList="ReportStatusView.ReportItems"/>
|
||||
}
|
||||
@if (Working)
|
||||
{
|
|
@ -25,14 +25,14 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.Pages;
|
||||
|
||||
public partial class ActivityListTodayCrmPage : IDisposable
|
||||
public partial class AdvisorTodayActivityListPage : IDisposable
|
||||
{
|
||||
[Inject] public UserProfileService UserProfileService { get; set; }
|
||||
[Inject] public ILogger<ActivityListTodayCrmPage> Logger { get; set; }
|
||||
[Inject] public ILogger<AdvisorTodayActivityListPage> Logger { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public IActivityCrmHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public IReportHttpRepository ReportRepo { get; set; }
|
||||
[Inject] public IAdvisorActivityRepository AdvisorActivityRepo { get; set; }
|
||||
[Inject] public IAdvisorReportRepository AdvisorReportRepo { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
private ReportStatusView? ReportStatusView { get; set; } = new();
|
||||
private UserPref UserPref { get; set; } = new();
|
||||
|
@ -46,7 +46,7 @@ public partial class ActivityListTodayCrmPage : IDisposable
|
|||
Interceptor.RegisterBeforeSendEvent();
|
||||
UserPref = await UserProfileService.GetPreferences();
|
||||
SelectedDate = string.IsNullOrWhiteSpace(UserPref.WorkDate) ? DateTime.Now : DateTime.Parse(UserPref.WorkDate);
|
||||
ReportExist = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||
ReportExist = await AdvisorReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||
await GetActivities($"{SelectedDate:yyyy-MM-dd}");
|
||||
Working = false;
|
||||
}
|
||||
|
@ -57,8 +57,8 @@ public partial class ActivityListTodayCrmPage : IDisposable
|
|||
Toaster.ShowInfo("Vent nogle sekunder for data", "HENTER DATA");
|
||||
SelectedDate = DateTime.Parse(workDate);
|
||||
ReportStatusView = new ReportStatusView();
|
||||
ReportExist = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||
ReportStatusView = await ActivityRepo.GetActivities($"{SelectedDate:yyyy-MM-dd}");
|
||||
ReportExist = await AdvisorReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||
ReportStatusView = await AdvisorActivityRepo.GetActivities($"{SelectedDate:yyyy-MM-dd}");
|
||||
Logger.LogDebug("Activities => {}", JsonSerializer.Serialize(ReportStatusView));
|
||||
Working = false;
|
||||
Toaster.ClearAll();
|
|
@ -18,7 +18,7 @@
|
|||
@using Microsoft.AspNetCore.Authorization
|
||||
@using Wonky.Client.Components
|
||||
|
||||
@attribute [Authorize(Roles = "Admin,Office,Warehouse,Advisor")]
|
||||
@attribute [Authorize(Roles = "Admin,Advisor,Warehouse")]
|
||||
@page "/companies/{CompanyId}/orders/{OrderId}"
|
||||
@page "/companies/{CompanyId}/quotes/{OrderId}"
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue