added new data fields to companyDto and activityDto
This commit is contained in:
parent
e1a358f8b7
commit
ee9921296a
15 changed files with 222 additions and 376 deletions
|
@ -148,7 +148,7 @@ public class CrmCustomerRepository : ICrmCustomerRepository
|
||||||
};
|
};
|
||||||
var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/crmData", updateModel, _options);
|
var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/crmData", updateModel, _options);
|
||||||
var content = await response.Content.ReadAsStringAsync();
|
var content = await response.Content.ReadAsStringAsync();
|
||||||
return JsonSerializer.Deserialize<CompanyDto>(content);
|
return JsonSerializer.Deserialize<CompanyDto>(content) ?? new CompanyDto();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -169,12 +169,14 @@ public class CrmCustomerRepository : ICrmCustomerRepository
|
||||||
Mobile = company.Mobile,
|
Mobile = company.Mobile,
|
||||||
Name = company.Name,
|
Name = company.Name,
|
||||||
Phone = company.Phone,
|
Phone = company.Phone,
|
||||||
ZipCode = company.ZipCode
|
ZipCode = company.ZipCode,
|
||||||
|
EanNumber = company.EanNumber,
|
||||||
|
Segment = company.Segment
|
||||||
};
|
};
|
||||||
|
|
||||||
var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/erpData", updateModel, _options);
|
var response = await _client.PutAsJsonAsync($"{_conf.CrmCustomers}/{companyId}/erpData", updateModel, _options);
|
||||||
var content = await response.Content.ReadAsStringAsync();
|
var content = await response.Content.ReadAsStringAsync();
|
||||||
return JsonSerializer.Deserialize<CompanyDto>(content);
|
return JsonSerializer.Deserialize<CompanyDto>(content) ?? new CompanyDto();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -167,6 +167,8 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
Activity.DlvAddress2 = Company.Address2;
|
Activity.DlvAddress2 = Company.Address2;
|
||||||
Activity.DlvZipCode = Company.ZipCode;
|
Activity.DlvZipCode = Company.ZipCode;
|
||||||
Activity.DlvCity = Company.City;
|
Activity.DlvCity = Company.City;
|
||||||
|
Activity.Segment = Company.Segment;
|
||||||
|
Activity.EanNumber = Company.EanNumber;
|
||||||
|
|
||||||
// Initialize date variable
|
// Initialize date variable
|
||||||
Logger.LogDebug("AdvisorActivityCreatePage => DateTime parser => {}", UserPreference.WorkDate);
|
Logger.LogDebug("AdvisorActivityCreatePage => DateTime parser => {}", UserPreference.WorkDate);
|
||||||
|
|
|
@ -68,16 +68,22 @@
|
||||||
</div>
|
</div>
|
||||||
@* Post Code *@
|
@* Post Code *@
|
||||||
<label for="zipCode" class="col-sm-1 col-form-label-sm">PostNr</label>
|
<label for="zipCode" class="col-sm-1 col-form-label-sm">PostNr</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-1">
|
||||||
<InputText id="zipCode" class="form-control" @bind-Value="Company.ZipCode" readonly="@(ErpEditDisabled)"/>
|
<InputText id="zipCode" class="form-control" @bind-Value="Company.ZipCode" readonly="@(ErpEditDisabled)"/>
|
||||||
<ValidationMessage For="@(() => Company.ZipCode)"></ValidationMessage>
|
<ValidationMessage For="@(() => Company.ZipCode)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
@* City Name *@
|
@* City Name *@
|
||||||
<label for="city" class="col-sm-1 col-form-label-sm">Bynavn</label>
|
<label for="city" class="col-sm-1 col-form-label-sm">Bynavn</label>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-3">
|
||||||
<InputText id="city" class="form-control" @bind-Value="Company.City" readonly="@(ErpEditDisabled)"/>
|
<InputText id="city" class="form-control" @bind-Value="Company.City" readonly="@(ErpEditDisabled)"/>
|
||||||
<ValidationMessage For="@(() => Company.City)"></ValidationMessage>
|
<ValidationMessage For="@(() => Company.City)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
|
@* Email *@
|
||||||
|
<label for="email" class="col-sm-1 col-form-label-sm">Epost</label>
|
||||||
|
<div class="col-sm-5">
|
||||||
|
<InputText id="email" class="form-control" @bind-Value="Company.Email" readonly="@(ErpEditDisabled)"/>
|
||||||
|
<ValidationMessage For="@(() => Company.Email)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
@* Phone *@
|
@* Phone *@
|
||||||
<label for="phone" class="col-sm-1 col-form-label-sm">Telefon</label>
|
<label for="phone" class="col-sm-1 col-form-label-sm">Telefon</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
|
@ -91,37 +97,29 @@
|
||||||
<ValidationMessage For="@(() => Company.Mobile)"></ValidationMessage>
|
<ValidationMessage For="@(() => Company.Mobile)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
@* Email *@
|
@* Email *@
|
||||||
<label for="email" class="col-sm-1 col-form-label-sm">Epost</label>
|
<label for="email" class="col-sm-1 col-form-label-sm">EAN</label>
|
||||||
<div class="col-sm-5">
|
<div class="col-sm-5">
|
||||||
<InputText id="email" class="form-control" @bind-Value="Company.Email" readonly="@(ErpEditDisabled)"/>
|
<InputText id="email" class="form-control" @bind-Value="Company.EanNumber" readonly="@(ErpEditDisabled)"/>
|
||||||
<ValidationMessage For="@(() => Company.Email)"></ValidationMessage>
|
<ValidationMessage For="@(() => Company.EanNumber)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (!Kanvas)
|
@if (!Kanvas)
|
||||||
{
|
|
||||||
@if (AppInfo!.Value!.Rc)
|
|
||||||
{
|
{
|
||||||
<label for="segment" class="col-sm-1 col-form-label-sm">Segment</label>
|
<label for="segment" class="col-sm-1 col-form-label-sm">Segment</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<InputSelect id="segment" class="form-select bg-warning text-bg-warning" @bind-Value="@Company.Segment">
|
<InputSelect id="segment" class="form-select bg-warning text-bg-warning"
|
||||||
|
@bind-Value="@Company.Segment" disabled="@(ErpEditDisabled)">
|
||||||
<option value="" disabled>segment</option>
|
<option value="" disabled>segment</option>
|
||||||
<option value="1">AUTO</option>
|
<option value="1">AUTO</option>
|
||||||
<option value="2">INDUSTRI</option>
|
<option value="2">INDUSTRI</option>
|
||||||
</InputSelect>
|
</InputSelect>
|
||||||
@* <ValidationMessage For="@(() => )"></ValidationMessage> *@
|
<ValidationMessage For="@(() => Company.Segment)"></ValidationMessage>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-1">
|
<div class="col-sm-1">
|
||||||
<div class="led-box @(DateTime.Now < DateTime.Parse("2023-12-31") ? "inno-display" : "inno-hidden")">
|
<div class="led-box @(DateTime.Now < DateTime.Parse("2023-12-31") ? "inno-display" : "inno-hidden")">
|
||||||
<div class="led-red"></div>
|
<div class="led-red"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<div class="col-sm-4">
|
|
||||||
@* placeholder *@
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
|
|
||||||
@* Enable edit/save *@
|
@* Enable edit/save *@
|
||||||
<div class="col-sm-2 d-grid mx-auto">
|
<div class="col-sm-2 d-grid mx-auto">
|
||||||
|
|
|
@ -455,7 +455,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
||||||
ErpContext = new EditContext(Company);
|
ErpContext = new EditContext(Company);
|
||||||
|
|
||||||
ErpContext.OnFieldChanged += HandleFieldChanged;
|
ErpContext.OnFieldChanged += HandleFieldChanged;
|
||||||
ErpContext.OnValidationStateChanged += ValidationChanged;
|
ErpContext.OnValidationStateChanged += ValidationChanged!;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
@using Microsoft.AspNetCore.Authorization
|
@using Microsoft.AspNetCore.Authorization
|
||||||
@using Wonky.Client.Components
|
@using Wonky.Client.Components
|
||||||
@attribute [Authorize(Roles = "Advisor")]
|
@attribute [Authorize(Roles = "Advisor")]
|
||||||
@page "/advisor/customers/{CompanyId}/workplaces/{WorkplaceId}/doc"
|
@page "/advisor/customers/{CompanyId}/workplaces/{WorkplaceId}/documents/new"
|
||||||
<PageTitle>@Workplace.CompanyName - @Workplace.Name</PageTitle>
|
<PageTitle>@Workplace.CompanyName - @Workplace.Name</PageTitle>
|
||||||
<div class="row -mb-3">
|
<div class="row -mb-3">
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
|
@ -33,6 +33,69 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<EditForm EditContext="FormContext" OnValidSubmit="SubmitForm">
|
||||||
|
<DataAnnotationsValidator/>
|
||||||
|
<div class="row g-3 mb-3">
|
||||||
|
<div class="col-sm-12 col-md-6">
|
||||||
|
<div class="form-floating">
|
||||||
|
<InputText id="eyeCleanerLocation" class="form-control" @bind-Value="WorkplaceDocumentDto.EyeCleanerLocation" placeholder="Øjenskylleflaske"/>
|
||||||
|
<label for="eyeCleanerLocation">Øjenskylleflaske</label>
|
||||||
|
<ValidationMessage For="@(() => WorkplaceDocumentDto.EyeCleanerLocation)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-md-6">
|
||||||
|
<div class="form-floating">
|
||||||
|
<InputText id="firstAidStorage" class="form-control" @bind-Value="WorkplaceDocumentDto.FirstAidLocation" placeholder="Førstehjælp"/>
|
||||||
|
<label for="firstAidStorage">Førstehjælp</label>
|
||||||
|
<ValidationMessage For="@(() => WorkplaceDocumentDto.FirstAidLocation)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-md-6">
|
||||||
|
<div class="form-floating">
|
||||||
|
<InputText id="productStorage" class="form-control" @bind-Value="WorkplaceDocumentDto.ProductStorage" placeholder="Produkt opbevaring"/>
|
||||||
|
<label for="productStorage">Produkt Opbevaring</label>
|
||||||
|
<ValidationMessage For="@(() => WorkplaceDocumentDto.ProductStorage)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-md-6">
|
||||||
|
<div class="form-floating">
|
||||||
|
<InputText id="maskStorage" class="form-control" @bind-Value="WorkplaceDocumentDto.MaskStorage" placeholder="Maske opbevaring"/>
|
||||||
|
<label for="maskStorage">Maske Opbevaring</label>
|
||||||
|
<ValidationMessage For="@(() => WorkplaceDocumentDto.MaskStorage)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-md-6">
|
||||||
|
<div class="form-floating">
|
||||||
|
<InputText id="glovesStorage" class="form-control" @bind-Value="WorkplaceDocumentDto.GlovesStorage" placeholder="Handsker"/>
|
||||||
|
<label for="glovesStorage">Handsker</label>
|
||||||
|
<ValidationMessage For="@(() => WorkplaceDocumentDto.GlovesStorage)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-md-6">
|
||||||
|
<div class="form-floating">
|
||||||
|
<InputText id="gogglesStorage" class="form-control" @bind-Value="WorkplaceDocumentDto.GogglesStorage" placeholder="Beskyttelsesbriller"/>
|
||||||
|
<label for="gogglesStorage">Beskyttelsesbriller</label>
|
||||||
|
<ValidationMessage For="@(() => WorkplaceDocumentDto.GogglesStorage)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-12 col-md-6">
|
||||||
|
<div class="form-floating">
|
||||||
|
<InputText id="wasteDeposit" class="form-control" @bind-Value="WorkplaceDocumentDto.WasteDeposit" placeholder="Affald og Spild"/>
|
||||||
|
<label for="wasteDeposit">Affald og Spild</label>
|
||||||
|
<ValidationMessage For="@(() => WorkplaceDocumentDto.WasteDeposit)"></ValidationMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-5">
|
||||||
|
<div class="col-sm-4 d-flex">
|
||||||
|
<a class="btn btn-primary mx-auto" href="/advisor/customers/@CompanyId"><i class="bi-x-lg"></i> Fortryd</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-4 d-flex">
|
||||||
|
<button type="submit" class="btn btn-success mx-auto" disabled="@FormInvalid"><i class="bi-cloud-upload"></i> Gem</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</EditForm>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@if (Working)
|
@if (Working)
|
||||||
|
|
|
@ -33,12 +33,11 @@ namespace Wonky.Client.Pages;
|
||||||
public partial class CrmCustomerWorkplaceDocumentAddPage : IDisposable
|
public partial class CrmCustomerWorkplaceDocumentAddPage : IDisposable
|
||||||
{
|
{
|
||||||
// #############################################################
|
// #############################################################
|
||||||
[Inject] public ICrmWorkplaceRepository Workplaces { get; set; }
|
|
||||||
[Inject] public ICrmWorkplaceRepository WorkplaceRepo { get; set; }
|
[Inject] public ICrmWorkplaceRepository WorkplaceRepo { get; set; }
|
||||||
|
[Inject] public ICrmPublicProductRepository PublicProductRepo { get; set; }
|
||||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] public NavigationManager Navigator { get; set; }
|
[Inject] public NavigationManager Navigator { get; set; }
|
||||||
[Inject] public ILogger<CrmCustomerWorkplaceDocumentAddPage> Logger { get; set; }
|
[Inject] public ILogger<CrmCustomerWorkplaceDocumentAddPage> Logger { get; set; }
|
||||||
[Inject] public ISystemSendMailService SendMail { get; set; }
|
|
||||||
[Inject] public IToastService Toaster { get; set; }
|
[Inject] public IToastService Toaster { get; set; }
|
||||||
|
|
||||||
// #############################################################
|
// #############################################################
|
||||||
|
@ -46,64 +45,34 @@ public partial class CrmCustomerWorkplaceDocumentAddPage : IDisposable
|
||||||
[Parameter] public string WorkplaceId { get; set; } = "";
|
[Parameter] public string WorkplaceId { get; set; } = "";
|
||||||
|
|
||||||
// #############################################################
|
// #############################################################
|
||||||
|
private EditContext FormContext { get; set; }
|
||||||
private WorkplaceDto Workplace { get; set; } = new();
|
private WorkplaceDto Workplace { get; set; } = new();
|
||||||
private EditContext WorkplaceContext { get; set; }
|
|
||||||
private bool Working { get; set; } = true;
|
|
||||||
private WorkplaceInventory WorkplaceInventory { get; set; } = new();
|
private WorkplaceInventory WorkplaceInventory { get; set; } = new();
|
||||||
private List<DocView> DocViews { get; set; } = new();
|
private List<ExternalProductListView> AvailableProducts { get; set; } = new();
|
||||||
private ConfirmDeleteModal ConfirmDeleteWorkplace { get; set; }
|
private WorkplaceDocumentDto WorkplaceDocumentDto { get; set; } = new();
|
||||||
private ConfirmDeleteModal ConfirmDeleteProduct { get; set; }
|
private bool Working { get; set; } = true;
|
||||||
private string DeleteMessage { get; set; } = "";
|
private bool FormInvalid { get; set; } = true;
|
||||||
private string LinkRecipients { get; set; } = "";
|
|
||||||
private const string CopyText = "Kopier";
|
|
||||||
private const string CopyStyle = "btn btn-primary";
|
|
||||||
private const string SuccessText = "Kopieret";
|
|
||||||
private const string SuccessStyle = "btn btn-success";
|
|
||||||
private string _buttonText = CopyText;
|
|
||||||
private string _buttonStyle = CopyStyle;
|
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
WorkplaceContext = new EditContext(Workplace);
|
FormContext = new EditContext(WorkplaceDocumentDto);
|
||||||
WorkplaceContext.OnFieldChanged += HandleFieldChanged!;
|
|
||||||
WorkplaceContext.OnValidationStateChanged += ValidationChanged!;
|
|
||||||
|
|
||||||
Interceptor.RegisterEvent();
|
Interceptor.RegisterEvent();
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
|
|
||||||
Workplace = await Workplaces.GetWorkplace(CompanyId, WorkplaceId);
|
Workplace = await WorkplaceRepo.GetWorkplace(CompanyId, WorkplaceId);
|
||||||
WorkplaceInventory = await WorkplaceRepo.GetWorkplaceInventory(CompanyId, WorkplaceId);
|
WorkplaceInventory = await WorkplaceRepo.GetWorkplaceInventory(CompanyId, WorkplaceId);
|
||||||
|
AvailableProducts = await PublicProductRepo.GetProducts();
|
||||||
|
|
||||||
Working = false;
|
Working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SubmitForm()
|
||||||
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
WorkplaceContext.Validate();
|
|
||||||
|
|
||||||
StateHasChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
|
|
||||||
{
|
|
||||||
WorkplaceContext.OnFieldChanged -= HandleFieldChanged!;
|
|
||||||
WorkplaceContext.OnValidationStateChanged -= ValidationChanged!;
|
|
||||||
|
|
||||||
WorkplaceContext = new EditContext(Workplace);
|
|
||||||
|
|
||||||
WorkplaceContext.OnFieldChanged += HandleFieldChanged!;
|
|
||||||
WorkplaceContext.OnValidationStateChanged += ValidationChanged!;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
WorkplaceContext.OnFieldChanged += HandleFieldChanged!;
|
|
||||||
WorkplaceContext.OnValidationStateChanged += ValidationChanged!;
|
|
||||||
Interceptor.DisposeEvent();
|
Interceptor.DisposeEvent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
"appInfo": {
|
"appInfo": {
|
||||||
"name": "Wonky Online",
|
"name": "Wonky Online",
|
||||||
"version": "146.5",
|
"version": "147.0",
|
||||||
"rc": true,
|
"rc": true,
|
||||||
"sandBox": true,
|
"sandBox": false,
|
||||||
"image": "grumpy-coder.png"
|
"image": "grumpy-coder.png"
|
||||||
},
|
},
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"LogLevel": {
|
"LogLevel": {
|
||||||
"Default": "Debug",
|
"Default": "Information",
|
||||||
"System": "Debug",
|
"System": "Information",
|
||||||
"Microsoft": "Information"
|
"Microsoft": "Information"
|
||||||
},
|
},
|
||||||
"Debug": {
|
"Debug": {
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"apiConfig": {
|
"apiConfig": {
|
||||||
"baseUrl": "https://eta.innotec.dk",
|
"baseUrl": "https://zeta.innotec.dk",
|
||||||
"catalog": "api/v2/catalog/country",
|
"catalog": "api/v2/catalog/country",
|
||||||
"crmCustomers": "api/v2/crm/companies",
|
"crmCustomers": "api/v2/crm/companies",
|
||||||
"crmInventoryExt": "history/inventory",
|
"crmInventoryExt": "history/inventory",
|
||||||
|
|
|
@ -21,207 +21,106 @@ namespace Wonky.Entity.DTO;
|
||||||
|
|
||||||
public class ActivityDto
|
public class ActivityDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Activity entity id
|
|
||||||
/// </summary>
|
|
||||||
public string SalesHeadId { get; set; } = "";
|
public string SalesHeadId { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sales representative identification
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
[Required]
|
||||||
public string SalesRep { get; set; } = "";
|
public string SalesRep { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sales representative entity Id
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
[Required]
|
||||||
public string SalesRepId { get; set; } = "";
|
public string SalesRepId { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Company countryCode (ensure correct code when office create ordre)
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
[Required]
|
||||||
public string CountryCode { get; set; } = "";
|
public string CountryCode { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Company entity Id
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
[Required]
|
||||||
public string CompanyId { get; set; } = "";
|
public string CompanyId { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Business Central entity Id
|
|
||||||
/// </summary>
|
|
||||||
public string BcId { get; set; } = "";
|
public string BcId { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer account
|
|
||||||
/// </summary>
|
|
||||||
public string Account { get; set; } = "";
|
public string Account { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// VAT number
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string VatNumber { get; set; } = "";
|
public string VatNumber { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer name
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Navn skal udfyldes")]
|
[Required(ErrorMessage = "Navn skal udfyldes")]
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string Name { get; set; } = "";
|
public string Name { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer address city name
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Byanvn skal udfyldes")]
|
[Required(ErrorMessage = "Byanvn skal udfyldes")]
|
||||||
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
||||||
public string City { get; set; } = "";
|
public string City { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer address postal code
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Postnr. skal udfyldes")]
|
[Required(ErrorMessage = "Postnr. skal udfyldes")]
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string ZipCode { get; set; } = "";
|
public string ZipCode { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer address line 1
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string Address1 { get; set; } = "";
|
public string Address1 { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer address line 2
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
||||||
public string Address2 { get; set; } = "";
|
public string Address2 { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer office phone
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string Phone { get; set; } = "";
|
public string Phone { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer mobile phone
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string Mobile { get; set; } = "";
|
public string Mobile { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer office email
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(80, ErrorMessage = "Du kan højst bruge 80 tegn")]
|
[MaxLength(80, ErrorMessage = "Du kan højst bruge 80 tegn")]
|
||||||
public string Email { get; set; } = "";
|
public string Email { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer attention description
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string Attention { get; set; } = "";
|
public string Attention { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Flag express order
|
|
||||||
/// </summary>
|
|
||||||
public bool Express { get; set; }
|
public bool Express { get; set; }
|
||||||
|
|
||||||
// Form entries
|
|
||||||
/// <summary>
|
|
||||||
/// Activity status enum as string
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Vælg status for besøg ")]
|
[Required(ErrorMessage = "Vælg status for besøg ")]
|
||||||
public string ActivityStatusEnum { get; set; } = "";
|
public string ActivityStatusEnum { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Activity type enum as string
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Vælg aktivitetstype")]
|
[Required(ErrorMessage = "Vælg aktivitetstype")]
|
||||||
public string ActivityTypeEnum { get; set; } = "";
|
public string ActivityTypeEnum { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Visit type enum as string
|
|
||||||
/// </summary>
|
|
||||||
public string ActivityVisitEnum { get; set; } = "recall";
|
public string ActivityVisitEnum { get; set; } = "recall";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Activity date
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Dato skal angives")]
|
[Required(ErrorMessage = "Dato skal angives")]
|
||||||
public string ActivityDate { get; set; } = "";
|
public string ActivityDate { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Product demonstration
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
||||||
public string Demo { get; set; } = "";
|
public string Demo { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Our reference - system generated
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string OurRef { get; set; } = "";
|
public string OurRef { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer reference number
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string ReferenceNumber { get; set; } = "";
|
public string ReferenceNumber { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer reference description
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(35, ErrorMessage = "Du kan højst bruge 35 tegn")]
|
[MaxLength(35, ErrorMessage = "Du kan højst bruge 35 tegn")]
|
||||||
public string YourRef { get; set; } = "";
|
public string YourRef { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Processing note to office
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(255, ErrorMessage = "Du kan højst bruge 255 tegn")]
|
[MaxLength(255, ErrorMessage = "Du kan højst bruge 255 tegn")]
|
||||||
public string OrderMessage { get; set; } = "";
|
public string OrderMessage { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// CRM note for future reference
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(255, ErrorMessage = "Du kan højst bruge 255 tegn")]
|
[MaxLength(255, ErrorMessage = "Du kan højst bruge 255 tegn")]
|
||||||
public string CrmNote { get; set; } = "";
|
public string CrmNote { get; set; } = "";
|
||||||
|
|
||||||
// Delivery address form entries
|
|
||||||
/// <summary>
|
|
||||||
/// Customer delivery name
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string DlvName { get; set; } = "";
|
public string DlvName { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer delivery address line 1
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string DlvAddress1 { get; set; } = "";
|
public string DlvAddress1 { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer delivery address line 2
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
||||||
public string DlvAddress2 { get; set; } = "";
|
public string DlvAddress2 { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer delivery postal code
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string DlvZipCode { get; set; } = "";
|
public string DlvZipCode { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Customer delivery city name
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
||||||
public string DlvCity { get; set; } = "";
|
public string DlvCity { get; set; } = "";
|
||||||
|
|
||||||
// Lines
|
public string EanNumber { get; set; } = "";
|
||||||
/// <summary>
|
|
||||||
/// Order lines
|
public string Segment { get; set; } = "";
|
||||||
/// </summary>
|
|
||||||
public List<ActivityLineDto> Lines { get; set; } = new();
|
public List<ActivityLineDto> Lines { get; set; } = new();
|
||||||
}
|
}
|
|
@ -21,177 +21,76 @@ namespace Wonky.Entity.DTO;
|
||||||
|
|
||||||
public class CompanyDto
|
public class CompanyDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Account number
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string Account { get; set; } = "";
|
public string Account { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Office address 1
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string Address1 { get; set; } = "";
|
public string Address1 { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Office address 2
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")]
|
||||||
public string Address2 { get; set; } = "";
|
public string Address2 { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Attention
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string Attention { get; set; } = "";
|
public string Attention { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Business Central entity Id
|
|
||||||
/// </summary>
|
|
||||||
public string BcId { get; set; } = "";
|
public string BcId { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ERP block state
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>Empty string - Customer not blocked</remarks>
|
|
||||||
public string Blocked { get; set; } = "";
|
public string Blocked { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// City name
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Bynavn skal udfyldes")]
|
[Required(ErrorMessage = "Bynavn skal udfyldes")]
|
||||||
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
||||||
public string City { get; set; } = "";
|
public string City { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Company Id
|
|
||||||
/// </summary>
|
|
||||||
public string CompanyId { get; set; } = "";
|
public string CompanyId { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Country code ISO
|
|
||||||
/// </summary>
|
|
||||||
public string CountryCode { get; set; } = "";
|
public string CountryCode { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Crm note
|
|
||||||
/// </summary>
|
|
||||||
public string CrmNotes { get; set; } = "";
|
public string CrmNotes { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Ean number
|
|
||||||
/// </summary>
|
|
||||||
public string EanNumber { get; set; } = "";
|
public string EanNumber { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Office email
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(80, ErrorMessage = "Du kan højst bruge 80 tegn")]
|
[MaxLength(80, ErrorMessage = "Du kan højst bruge 80 tegn")]
|
||||||
public string Email { get; set; } = "";
|
public string Email { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Fax
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")]
|
||||||
public string Fax { get; set; } = "";
|
public string Fax { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Value indication if company has shutdown
|
|
||||||
/// </summary>
|
|
||||||
/// <value>0 or 1</value>
|
|
||||||
public int HasFolded { get; set; }
|
public int HasFolded { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Date for last sync of product history
|
|
||||||
/// </summary>
|
|
||||||
public string HistorySync { get; set; } = "";
|
public string HistorySync { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Interval between visits
|
|
||||||
/// </summary>
|
|
||||||
/// <value>between 1 and 52 (inclusive) default value is 8</value>
|
|
||||||
[Range(1, 52, ErrorMessage = "Angiv interval mellem 1 og 52 uger")]
|
[Range(1, 52, ErrorMessage = "Angiv interval mellem 1 og 52 uger")]
|
||||||
public int Interval { get; set; } = 8;
|
public int Interval { get; set; } = 8;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// User value for hiding the company is out of business
|
|
||||||
/// </summary>
|
|
||||||
/// <value>0 or 1</value>
|
|
||||||
public int IsHidden { get; set; }
|
public int IsHidden { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Last visit
|
|
||||||
/// </summary>
|
|
||||||
public string LastVisit { get; set; } = "2010-01-01";
|
public string LastVisit { get; set; } = "2010-01-01";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Mobile phone number
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string Mobile { get; set; } = "";
|
public string Mobile { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Name
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Navn skal udfyldes")]
|
[Required(ErrorMessage = "Navn skal udfyldes")]
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string Name { get; set; } = "";
|
public string Name { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Next visit
|
|
||||||
/// </summary>
|
|
||||||
public string NextVisit { get; set; } = "2010-01-01";
|
public string NextVisit { get; set; } = "2010-01-01";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Alert
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
|
||||||
public string Note { get; set; } = "";
|
public string Note { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Phone number
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string Phone { get; set; } = "";
|
public string Phone { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// SalesRep ERP identifier
|
|
||||||
/// </summary>
|
|
||||||
public string SalesRep { get; set; } = "";
|
public string SalesRep { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sales representative entity Id
|
|
||||||
/// </summary>
|
|
||||||
public string SalesRepId { get; set; } = "";
|
public string SalesRepId { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
[Required(ErrorMessage = "Segment skal vælges - AUTO eller INDUSTRI")]
|
||||||
/// Customer Segment
|
|
||||||
/// </summary>
|
|
||||||
public string Segment { get; set; } = "";
|
public string Segment { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Value indicating the VAT number is valid
|
|
||||||
/// </summary>
|
|
||||||
/// <value>0 or 1</value>
|
|
||||||
public int ValidVat { get; set; }
|
public int ValidVat { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// VAT number
|
|
||||||
/// </summary>
|
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string VatNumber { get; set; } = "";
|
public string VatNumber { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Postal code
|
|
||||||
/// </summary>
|
|
||||||
[Required(ErrorMessage = "Postnummer skal udfyldes")]
|
[Required(ErrorMessage = "Postnummer skal udfyldes")]
|
||||||
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")]
|
||||||
public string ZipCode { get; set; } = "";
|
public string ZipCode { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Virtual property indicating if timespan is within the defined interval
|
|
||||||
/// </summary>
|
|
||||||
/// <returns>true/false</returns>
|
|
||||||
public virtual bool ValidDateSpan()
|
public virtual bool ValidDateSpan()
|
||||||
{
|
{
|
||||||
var notAllowed = new List<string> { "2010-01-01", "1970-01-01", "0001-01-01" };
|
var notAllowed = new List<string> { "2010-01-01", "1970-01-01", "0001-01-01" };
|
||||||
|
|
12
Wonky.Entity/DTO/UpdateDocHeaderDto.cs
Normal file
12
Wonky.Entity/DTO/UpdateDocHeaderDto.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Wonky.Entity.DTO;
|
||||||
|
|
||||||
|
public class UpdateDocHeaderDto
|
||||||
|
{
|
||||||
|
[Required][MaxLength(128)] public string ApprovedBy { get; set; } = "";
|
||||||
|
[Required][MaxLength(10)] public string ApprovedDate { get; set; } = "";
|
||||||
|
[Required][MaxLength(128)] public string AuthoredBy { get; set; } = "";
|
||||||
|
[Required][MaxLength(128)] public string DocumentId { get; set; } = "";
|
||||||
|
[Required][MaxLength(10)] public string FollowupDate { get; set; } = "";
|
||||||
|
}
|
|
@ -1,31 +0,0 @@
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Wonky.Entity.DTO;
|
|
||||||
|
|
||||||
public class WorkplaceBopCreate
|
|
||||||
{
|
|
||||||
public string EyeCleanerLocation { get; set; } = "";
|
|
||||||
public string FirstAidLocation { get; set; } = "";
|
|
||||||
public string GlovesStorage { get; set; } = "";
|
|
||||||
public string GogglesStorage { get; set; } = "";
|
|
||||||
public string MaskStorage { get; set; } = "";
|
|
||||||
public string ProductStorage { get; set; } = "";
|
|
||||||
public string WasteDeposit { get; set; } = "";
|
|
||||||
public string AuthoredBy { get; set; } = "";
|
|
||||||
public string ApprovedBy { get; set; } = "";
|
|
||||||
public string ApprovedDate { get; set; } = "";
|
|
||||||
public string FollowupDate { get; set; } = "";
|
|
||||||
|
|
||||||
public List<ProductVariants> ProductVariants { get; set; } = new();
|
|
||||||
}
|
|
||||||
|
|
||||||
public class ProductVariants
|
|
||||||
{
|
|
||||||
public string VariantId { get; set; } = "";
|
|
||||||
public string S5A { get; set; } = "";
|
|
||||||
public string S9A { get; set; } = "";
|
|
||||||
|
|
||||||
// Sweden
|
|
||||||
// yearly consumption and product exposure
|
|
||||||
// public string S11A { get; set; } = "";
|
|
||||||
}
|
|
32
Wonky.Entity/DTO/WorkplaceDocumentDto.cs
Normal file
32
Wonky.Entity/DTO/WorkplaceDocumentDto.cs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Wonky.Entity.DTO;
|
||||||
|
|
||||||
|
public class WorkplaceDocumentDto
|
||||||
|
{
|
||||||
|
[Required] public string EyeCleanerLocation { get; set; } = "";
|
||||||
|
[Required]public string FirstAidLocation { get; set; } = "";
|
||||||
|
[Required]public string GlovesStorage { get; set; } = "";
|
||||||
|
[Required]public string GogglesStorage { get; set; } = "";
|
||||||
|
[Required]public string MaskStorage { get; set; } = "";
|
||||||
|
[Required]public string ProductStorage { get; set; } = "";
|
||||||
|
[Required]public string WasteDeposit { get; set; } = "";
|
||||||
|
[Required]public string AuthoredBy { get; set; } = "";
|
||||||
|
[Required]public string ApprovedBy { get; set; } = "";
|
||||||
|
[Required]public string ApprovedDate { get; set; } = "";
|
||||||
|
[Required]public string FollowupDate { get; set; } = "";
|
||||||
|
|
||||||
|
public List<ProductVariant> ProductVariants { get; set; } = new();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ProductVariant
|
||||||
|
{
|
||||||
|
[Required] public string VariantId { get; set; } = "";
|
||||||
|
public string S5A { get; set; } = "";
|
||||||
|
public string S9A { get; set; } = "";
|
||||||
|
|
||||||
|
// Sweden
|
||||||
|
// yearly consumption and product exposure
|
||||||
|
// public string S11A { get; set; } = "";
|
||||||
|
}
|
|
@ -10,15 +10,3 @@ public class ExternalProductListView
|
||||||
public string ProductCategoryEnum { get; set; } = "";
|
public string ProductCategoryEnum { get; set; } = "";
|
||||||
public List<ExternalProductVariantView> Variants { get; set; } = new();
|
public List<ExternalProductVariantView> Variants { get; set; } = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ExternalProductVariantView
|
|
||||||
{
|
|
||||||
public string VariantId { get; set; } = "";
|
|
||||||
public string Name { get; set; } = "";
|
|
||||||
public string Sku { get; set; } = "";
|
|
||||||
public string ErpName { get; set; } = "";
|
|
||||||
public string ErpSku { get; set; } = "";
|
|
||||||
public string ShortName { get; set; } = "";
|
|
||||||
public string PictureLink { get; set; } = "";
|
|
||||||
public bool Selected { get; set; }
|
|
||||||
}
|
|
13
Wonky.Entity/Views/ExternalProductVariantView.cs
Normal file
13
Wonky.Entity/Views/ExternalProductVariantView.cs
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
namespace Wonky.Entity.Views;
|
||||||
|
|
||||||
|
public class ExternalProductVariantView
|
||||||
|
{
|
||||||
|
public string VariantId { get; set; } = "";
|
||||||
|
public string Name { get; set; } = "";
|
||||||
|
public string Sku { get; set; } = "";
|
||||||
|
public string ErpName { get; set; } = "";
|
||||||
|
public string ErpSku { get; set; } = "";
|
||||||
|
public string ShortName { get; set; } = "";
|
||||||
|
public string PictureLink { get; set; } = "";
|
||||||
|
public bool Selected { get; set; }
|
||||||
|
}
|
Loading…
Reference in a new issue