refactor for extend check and display
This commit is contained in:
parent
e8a0e446fd
commit
64766abd48
18 changed files with 104 additions and 64 deletions
|
@ -25,16 +25,25 @@
|
|||
{
|
||||
<div class="col-sm-6">
|
||||
<div class="card">
|
||||
<div class="card-header fw-bold @(company.HasFolded == 1 ? "alert alert-dark" : "alert alert-success")">
|
||||
@company.Name @(company.HasFolded == 1 ? "(OPHØRT)" : "")
|
||||
</div>
|
||||
@if (string.IsNullOrWhiteSpace(company.Blocked))
|
||||
{
|
||||
<div class="card-header fw-bold @(company.HasFolded == 1 ? "alert alert-dark" : "alert alert-success")">
|
||||
@company.Name @(company.HasFolded == 1 ? "(OPHØRT)" : "")
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="card-header fw-bold alert alert-danger">
|
||||
@company.Name (spærret med kode '@company.Blocked')
|
||||
</div>
|
||||
}
|
||||
<div class="card-body">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th scope="row">Konto</th>
|
||||
<td>@company.Account</td>
|
||||
<th scope="row">Org Nr.</th>
|
||||
<td>@(string.IsNullOrWhiteSpace(@company.VatNumber) ? "mangler" : @company.VatNumber) </td>
|
||||
<td>@(string.IsNullOrWhiteSpace(company.VatNumber) ? "mangler" : company.VatNumber) </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">Telefon</th>
|
||||
|
|
|
@ -47,7 +47,7 @@ public static class Utils
|
|||
}
|
||||
|
||||
|
||||
public static List<ProductVariant> GenerateVariantListDto(IEnumerable<DocView> items)
|
||||
public static List<ProductVariant> GenerateVariantListDto(IEnumerable<DocDataView> items)
|
||||
{
|
||||
return items.Select(item => new ProductVariant
|
||||
{
|
||||
|
@ -58,22 +58,23 @@ public static class Utils
|
|||
.ToList();
|
||||
}
|
||||
|
||||
|
||||
public static List<DocView> GenerateRevListView(IEnumerable<WorkplaceProduct> products)
|
||||
public static List<DocDataView> GenerateRevListView(IEnumerable<WorkplaceProduct> workplaceProducts)
|
||||
{
|
||||
var result = new List<DocView>();
|
||||
var result = new List<DocDataView>();
|
||||
|
||||
var docProducts = products.OrderBy(x => x.TradingName).ToList();
|
||||
var products = workplaceProducts.OrderBy(x => x.TradingName).ToList();
|
||||
|
||||
foreach (var product in docProducts)
|
||||
foreach (var product in products)
|
||||
{
|
||||
foreach (var variant in product.Variants)
|
||||
{
|
||||
var newDoc = new DocView
|
||||
var docDataView = new DocDataView
|
||||
{
|
||||
ProductId = product.ProductId,
|
||||
VariantId = variant.VariantId,
|
||||
VariantName = variant.VariantName,
|
||||
ApprovedBy = variant.Docs[0].ApprovedBy,
|
||||
DocumentDate = variant.Docs[0].ApprovedBy,
|
||||
};
|
||||
|
||||
var docs = variant.Docs.OrderBy(x => x.DocumentTypeEnum).ToList();
|
||||
|
@ -82,17 +83,17 @@ public static class Utils
|
|||
switch (doc.DocumentTypeEnum.ToLower())
|
||||
{
|
||||
case "apb":
|
||||
newDoc.ApbDocId = doc.DocumentId;
|
||||
docDataView.ApbDocId = doc.DocumentId;
|
||||
break;
|
||||
case "apv":
|
||||
newDoc.ApvDocId = doc.DocumentId;
|
||||
newDoc.S5A = doc.S5A;
|
||||
newDoc.S9A = doc.S9A;
|
||||
docDataView.ApvDocId = doc.DocumentId;
|
||||
docDataView.S5A = doc.S5A;
|
||||
docDataView.S9A = doc.S9A;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
result.Add(newDoc);
|
||||
result.Add(docDataView);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -100,9 +101,9 @@ public static class Utils
|
|||
}
|
||||
|
||||
|
||||
public static List<DocView> GenerateDocListView(IEnumerable<WorkplaceProduct> products, ApiConfig config)
|
||||
public static List<DocDataView> GenerateDocListView(IEnumerable<WorkplaceProduct> products, ApiConfig config)
|
||||
{
|
||||
var result = new List<DocView>();
|
||||
var result = new List<DocDataView>();
|
||||
|
||||
var docProducts = products.OrderBy(x => x.TradingName).ToList();
|
||||
|
||||
|
@ -110,7 +111,7 @@ public static class Utils
|
|||
{
|
||||
foreach (var variant in product.Variants)
|
||||
{
|
||||
var newDoc = new DocView
|
||||
var newDoc = new DocDataView
|
||||
{
|
||||
ProductId = product.ProductId,
|
||||
VariantId = variant.VariantId,
|
||||
|
|
|
@ -18,7 +18,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public interface IAdvisorWorkplaceRepository
|
||||
public interface IWorkplaceRepository
|
||||
{
|
||||
Task<List<WorkplaceListView>> GetWorkplaces(string companyId);
|
||||
|
|
@ -23,7 +23,7 @@ using Wonky.Entity.Views;
|
|||
|
||||
namespace Wonky.Client.HttpRepository;
|
||||
|
||||
public class AdvisorWorkplaceRepository : IAdvisorWorkplaceRepository
|
||||
public class WorkplaceRepository : IWorkplaceRepository
|
||||
{
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
|
@ -31,13 +31,13 @@ public class AdvisorWorkplaceRepository : IAdvisorWorkplaceRepository
|
|||
};
|
||||
|
||||
private readonly NavigationManager _navigation;
|
||||
private ILogger<AdvisorWorkplaceRepository> _logger;
|
||||
private ILogger<WorkplaceRepository> _logger;
|
||||
private readonly HttpClient _client;
|
||||
private readonly ApiConfig _api;
|
||||
|
||||
|
||||
public AdvisorWorkplaceRepository(HttpClient client,
|
||||
ILogger<AdvisorWorkplaceRepository> logger,
|
||||
public WorkplaceRepository(HttpClient client,
|
||||
ILogger<WorkplaceRepository> logger,
|
||||
NavigationManager navigation,
|
||||
IOptions<ApiConfig> configuration)
|
||||
{
|
|
@ -2,11 +2,12 @@ using System.ComponentModel.DataAnnotations;
|
|||
|
||||
namespace Wonky.Client.Models;
|
||||
|
||||
public class DocView
|
||||
public class DocDataView
|
||||
{
|
||||
public bool Added { get; set; }
|
||||
public string ApbDocId { get; set; } = "";
|
||||
public string ApbDocLink { get; set; } = "";
|
||||
public string ApprovedBy { get; set; } = "";
|
||||
public string ApvDocId { get; set; } = "";
|
||||
public string ApvDocLink { get; set; } = "";
|
||||
public string DocumentDate { get; set; } = "";
|
|
@ -22,13 +22,13 @@ namespace Wonky.Client.OverlayDocuments;
|
|||
public partial class ProductSelectionOverlay
|
||||
{
|
||||
//###############################################################
|
||||
[Parameter] public List<DocView> NewItems { get; set; } = new();
|
||||
[Parameter] public EventCallback<DocView> OnSelectItem { get; set; }
|
||||
[Parameter] public List<DocDataView> NewItems { get; set; } = new();
|
||||
[Parameter] public EventCallback<DocDataView> OnSelectItem { get; set; }
|
||||
|
||||
//###############################################################
|
||||
private string _modalDisplay = "";
|
||||
private bool _showBackdrop;
|
||||
private List<DocView> FilteredList { get; set; } = new();
|
||||
private List<DocDataView> FilteredList { get; set; } = new();
|
||||
private string SearchTerm { get; set; } = "";
|
||||
|
||||
|
||||
|
@ -38,7 +38,7 @@ public partial class ProductSelectionOverlay
|
|||
}
|
||||
|
||||
|
||||
private async Task SelectItem(DocView item)
|
||||
private async Task SelectItem(DocDataView item)
|
||||
{
|
||||
item.Added = !item.Added;
|
||||
await OnSelectItem.InvokeAsync(item);
|
||||
|
|
|
@ -384,7 +384,7 @@ else
|
|||
<div class="card mb-3 @(_activity.ActivityStatusEnum == "order" ? "inno-display" : "inno-hidden")">
|
||||
<div class="card-header text-end">
|
||||
<button class="btn btn-secondary" type="button" @onclick="@(ToggleDeliveryAddress)">
|
||||
Leveringsadresse
|
||||
Alternativ Leveringsadresse (ændres kun for denne bestiling)
|
||||
</button>
|
||||
</div>
|
||||
<div class="@(_hideDeliveryAddress ? "inno-hidden" : "inno-display")">
|
||||
|
|
|
@ -244,7 +244,6 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
|||
|
||||
if (!string.IsNullOrWhiteSpace(newSync))
|
||||
{
|
||||
Toaster.ShowSuccess($"{forceBackend} {newSync} ERP hitorik synkroniseret til CRM.");
|
||||
_company.HistorySync = newSync;
|
||||
if (!_company.Account.StartsWith("NY"))
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace Wonky.Client.Pages;
|
|||
public partial class AdvisorCustomerWorkplaceListPage : IDisposable
|
||||
{
|
||||
// ###############################################################
|
||||
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public IWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
|
|
|
@ -30,7 +30,7 @@ public partial class AdvisorCustomerWorkplaceNewPage : IDisposable
|
|||
// ###############################################################
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
|
||||
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public IWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public IToastService Toaster { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerWorkplaceNewPage> Logger { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
|
|
|
@ -65,6 +65,20 @@
|
|||
<ValidationMessage For="@(() => Revision.ApprovedBy)"></ValidationMessage>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-9"></div>
|
||||
<div class="col-sm-3 col-md-3">
|
||||
<div class="form-floating">
|
||||
@foreach (var approvedByName in _approvedBy)
|
||||
{
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio"
|
||||
name="approvedBy" id="approvedByName" value="@approvedByName"
|
||||
@onchange="() => OnApprovedChange(approvedByName)"/>
|
||||
<label class="form-checl-label" for="@approvedByName">@approvedByName</label>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-5">
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace Wonky.Client.Pages;
|
|||
public partial class AdvisorCustomerWorkplaceRevisionPage : IDisposable
|
||||
{
|
||||
// #############################################################
|
||||
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public IWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public IExternalProductRepository PublicProductRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
|
@ -52,15 +52,16 @@ public partial class AdvisorCustomerWorkplaceRevisionPage : IDisposable
|
|||
private UserManagerEditView UserInfo { get; set; }
|
||||
private EditContext FormContext { get; set; }
|
||||
private WorkplaceDto Workplace { get; set; } = new();
|
||||
private WorkplaceDocInfo WorkplaceInfo { get; set; } = new();
|
||||
private WorkplaceDocInfo WorkplaceData { get; set; } = new();
|
||||
private List<ExternalProductListView> AvailableProducts { get; set; } = new();
|
||||
private DocRevision Revision { get; set; } = new();
|
||||
private bool Working { get; set; } = true;
|
||||
private bool FormInvalid { get; set; } = true;
|
||||
private List<DocView> CurrentItems { get; set; } = new();
|
||||
private List<DocView> AvailableItems { get; set; } = new();
|
||||
private List<DocView> AppendItems { get; set; } = new();
|
||||
private List<DocDataView> CurrentItems { get; set; } = new();
|
||||
private List<DocDataView> AvailableItems { get; set; } = new();
|
||||
private List<DocDataView> AppendItems { get; set; } = new();
|
||||
private ProductSelectionOverlay SelectionOverlay { get; set; }
|
||||
private List<string> _approvedBy = new();
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
|
@ -76,31 +77,36 @@ public partial class AdvisorCustomerWorkplaceRevisionPage : IDisposable
|
|||
UserInfo = await UserService.GetUserInfo();
|
||||
|
||||
Workplace = await WorkplaceRepo.GetWorkplace(CompanyId, WorkplaceId);
|
||||
|
||||
Logger.LogDebug("Workplace {}",
|
||||
JsonSerializer.Serialize(Workplace, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
|
||||
|
||||
AvailableProducts = await PublicProductRepo.GetProducts();
|
||||
|
||||
WorkplaceInfo = await WorkplaceRepo.GetRevisionList(CompanyId, WorkplaceId);
|
||||
WorkplaceData = await WorkplaceRepo.GetRevisionList(CompanyId, WorkplaceId);
|
||||
Logger.LogDebug("Workplace Info => {}",
|
||||
JsonSerializer.Serialize(WorkplaceData, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
|
||||
|
||||
CurrentItems = Utils.GenerateRevListView(WorkplaceInfo.Products);
|
||||
Logger.LogDebug("Workplace Products => {}",
|
||||
JsonSerializer.Serialize(WorkplaceData.Products, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
|
||||
|
||||
CurrentItems = Utils.GenerateRevListView(WorkplaceData.Products);
|
||||
Logger.LogDebug("Current Items List {}",
|
||||
JsonSerializer.Serialize(CurrentItems, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
|
||||
|
||||
_approvedBy = CurrentItems.Select(x => x.ApprovedBy).Distinct().ToList();
|
||||
Logger.LogDebug("_approved by {}",
|
||||
JsonSerializer.Serialize(_approvedBy, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
|
||||
|
||||
// create list with variants not in the current variant list
|
||||
foreach (var variant in AvailableProducts.SelectMany(product => product.Variants))
|
||||
{
|
||||
var v = CurrentItems.FirstOrDefault(v => v.VariantId == variant.VariantId);
|
||||
if (v == null)
|
||||
{
|
||||
AvailableItems.Add(new DocView { VariantName = variant.Name, VariantId = variant.VariantId });
|
||||
AvailableItems.Add(new DocDataView { VariantName = variant.Name, VariantId = variant.VariantId });
|
||||
}
|
||||
}
|
||||
|
||||
Logger.LogDebug("New Products List {}",
|
||||
JsonSerializer.Serialize(AvailableItems, new JsonSerializerOptions(JsonSerializerDefaults.Web)));
|
||||
|
||||
Revision.ApprovedDate = $"{DateTime.Now:yyyy-MM-dd}";
|
||||
Revision.AuthoredBy = $"{UserInfo.FirstName} {UserInfo.LastName}";
|
||||
Revision.FollowupDate = $"{DateTime.Now.AddMonths(24):yyyy-MM-dd}";
|
||||
|
@ -151,13 +157,20 @@ public partial class AdvisorCustomerWorkplaceRevisionPage : IDisposable
|
|||
}
|
||||
|
||||
|
||||
private void OnApprovedChange(string approvedBy)
|
||||
{
|
||||
Revision.ApprovedBy = approvedBy;
|
||||
FormInvalid = !FormContext.Validate();
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private void CancelNewProducts()
|
||||
{
|
||||
AppendItems.Clear();
|
||||
}
|
||||
|
||||
|
||||
private void AddSelectedItem(DocView item)
|
||||
private void AddSelectedItem(DocDataView item)
|
||||
{
|
||||
if (item.Added)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
<div class="row -mb-3">
|
||||
<div class="col-sm-8">
|
||||
@Workplace.CompanyName
|
||||
<h3>@Workplace.CompanyName</h3>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<a class="btn btn-primary" href="/advisor/customers/@CompanyId"><i class="bi-chevron-left"></i> Stamkort</a>
|
||||
|
@ -38,7 +38,7 @@
|
|||
}
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
@Workplace.Name @(!string.IsNullOrWhiteSpace(Workplace.Description) ? $" ({Workplace.Description})" : "")
|
||||
<span class="h5">@Workplace.Name </span><span>@(!string.IsNullOrWhiteSpace(Workplace.Description) ? $" ({Workplace.Description})" : "")</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -35,9 +35,9 @@ namespace Wonky.Client.Pages;
|
|||
public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
|
||||
{
|
||||
// #############################################################
|
||||
[Inject] public IAdvisorWorkplaceRepository Workplaces { get; set; }
|
||||
[Inject] public IWorkplaceRepository Workplaces { get; set; }
|
||||
[Inject] public IAdvisorCustomerRepository CustomerRepo { get; set; }
|
||||
[Inject] public IAdvisorWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public IWorkplaceRepository WorkplaceRepo { get; set; }
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public NavigationManager Navigator { get; set; }
|
||||
[Inject] public ILogger<AdvisorCustomerWorkplaceViewEditPage> Logger { get; set; }
|
||||
|
@ -56,7 +56,7 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
|
|||
private EditContext WorkplaceContext { get; set; }
|
||||
private bool Working { get; set; } = true;
|
||||
private WorkplaceDocInfo WorkplaceDocInfo { get; set; } = new();
|
||||
private List<DocView> DocViews { get; set; } = new();
|
||||
private List<DocDataView> DocViews { get; set; } = new();
|
||||
private ConfirmationModal ConfirmActionWorkplace { get; set; }
|
||||
private string DeleteMessage { get; set; } = "";
|
||||
private string LinkRecipients { get; set; } = "";
|
||||
|
@ -79,7 +79,7 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
|
|||
private ApiConfig _config = new();
|
||||
|
||||
private ConfirmationModal ConfirmActionVariant { get; set; }
|
||||
private DocView SelectedItem { get; set; } = new();
|
||||
private DocDataView SelectedItem { get; set; } = new();
|
||||
private bool OnlyOne { get; set; } = true;
|
||||
|
||||
|
||||
|
@ -94,11 +94,13 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
|
|||
var x = await Workplaces.GetWorkplaces(CompanyId);
|
||||
OnlyOne = x.Count is 1;
|
||||
await Task.Delay(250);
|
||||
|
||||
Workplace = await Workplaces.GetWorkplace(CompanyId, WorkplaceId);
|
||||
|
||||
WorkplaceDocInfo = await WorkplaceRepo.GetDocuments(CompanyId, WorkplaceId);
|
||||
// Logger.LogDebug("WorkplaceDocInfo => {}", JsonSerializer.Serialize(WorkplaceDocInfo, JsonSerializerOptions.Default));
|
||||
|
||||
DocViews = Utils.GenerateDocListView(WorkplaceDocInfo.Products, _config);
|
||||
// Logger.LogDebug("docViews => {}", JsonSerializer.Serialize(DocViews, JsonSerializerOptions.Default));
|
||||
|
||||
Working = false;
|
||||
}
|
||||
|
@ -182,12 +184,13 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
|
|||
private async Task OnSubmitUpdate()
|
||||
{
|
||||
Working = true;
|
||||
Toaster.ShowWarning("HUSK REVISION AF DOKUMENTER.");
|
||||
|
||||
await Workplaces.PutWorkplace(CompanyId, Workplace);
|
||||
|
||||
Working = false;
|
||||
|
||||
Toaster.ShowSuccess("Arbejdssted er opdateret");
|
||||
Toaster.ShowSuccess("Arbejdssted er opdateret.");
|
||||
}
|
||||
|
||||
|
||||
|
@ -215,7 +218,7 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
|
|||
}
|
||||
|
||||
|
||||
private void OnConfirmDeleteVariant(DocView selectedItem)
|
||||
private void OnConfirmDeleteVariant(DocDataView selectedItem)
|
||||
{
|
||||
SelectedItem = selectedItem;
|
||||
DeleteMessage =
|
||||
|
@ -241,7 +244,7 @@ public partial class AdvisorCustomerWorkplaceViewEditPage : IDisposable
|
|||
// update browser
|
||||
WorkplaceDocInfo.Products.Remove(item);
|
||||
DocViews = Utils.GenerateDocListView(WorkplaceDocInfo.Products, _config);
|
||||
SelectedItem = new DocView();
|
||||
SelectedItem = new DocDataView();
|
||||
Working = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ builder.Services.AddScoped<IAdvisorContactRepository, AdvisorContactRepository>(
|
|||
builder.Services.AddScoped<IAdvisorCustomerHistoryRepository, AdvisorCustomerHistoryRepository>();
|
||||
builder.Services.AddScoped<IAdvisorTaskItemRepository, AdvisorTaskItemRepository>();
|
||||
builder.Services.AddScoped<IAdvisorSalesReportRepository, AdvisorSalesReportRepository>();
|
||||
builder.Services.AddScoped<IAdvisorWorkplaceRepository, AdvisorWorkplaceRepository>();
|
||||
builder.Services.AddScoped<IWorkplaceRepository, WorkplaceRepository>();
|
||||
builder.Services.AddScoped<IExternalProductRepository, ExternalProductRepository>();
|
||||
// administrative repositories
|
||||
builder.Services.AddScoped<ICountryCustomerHistoryRepository, CountryCustomerHistoryRepository>();
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<div class="content d-none d-print-block">
|
||||
@Body
|
||||
</div>
|
||||
<BlazoredToasts Position="ToastPosition.TopRight" Timeout="5" MaxToastCount="10" ShowProgressBar="true" />
|
||||
<BlazoredToasts Position="ToastPosition.BottomRight" Timeout="10" MaxToastCount="3" ShowProgressBar="true" />
|
||||
</main>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"appInfo": {
|
||||
"name": "Wonky Online",
|
||||
"version": "303.0",
|
||||
"version": "306.0",
|
||||
"rc": false,
|
||||
"sandBox": true,
|
||||
"image": "grumpy-coder.png",
|
||||
|
|
|
@ -3,8 +3,8 @@ namespace Wonky.Entity.Views;
|
|||
public class WorkplaceProductVariantDoc
|
||||
{
|
||||
public string ApprovedBy { get; set; } = "";
|
||||
public string DocumentDescription { get; set; } = "";
|
||||
public string DocumentDate { get; set; } = "";
|
||||
public string DocumentDescription { get; set; } = "";
|
||||
public string DocumentId { get; set; } = "";
|
||||
public string DocumentLink { get; set; } = "";
|
||||
public string DocumentTypeEnum { get; set; } = "";
|
||||
|
|
Loading…
Reference in a new issue