production v.0.36.1

This commit is contained in:
Frede Hundewadt 2022-11-09 10:46:39 +01:00
parent e6bc4f59dc
commit 19621a8e51
14 changed files with 192 additions and 154 deletions

View file

@ -36,12 +36,12 @@
<tbody>
@foreach (var activity in Activities)
{
<tr>
<tr class="border-bottom">
<td class="align-middle"><a href="/office/customers/@activity.Company.CompanyId/orders/@activity.ActivityId">@activity.Company.Name</a></td>
<td class="align-middle">@activity.Company.City</td>
<td class="align-middle">@activity.Demo</td>
<td class="align-middle">@activity.Sales</td>
<td class="align-middle">@activity.OfficeNote</td>
<td class="align-middle fw-bold">@activity.OfficeNote</td>
<td class="align-middle text-end">@($"{activity.SasAmount:N2}")</td>
<td class="align-middle text-end">@(activity.StatusTypeEnum == "Quote" ? $"{0:N2}" : $"{activity.OrderAmount:N2}")</td>
<td class="align-middle text-center">
@ -64,12 +64,6 @@
</td>
</tr>
}
<tr>
<td colspan="5" class="bg-light"></td>
<td class="align-middle text-center">Total</td>
<td class="align-middle text-end">@Activities.Where(x => x.StatusTypeEnum == "Order").Sum(x => x.OrderAmount)</td>
<td colspan="4" class="bg-light"></td>
</tr>
</tbody>
</table>
}

View file

@ -26,6 +26,12 @@
</div>
</div>
@if (!string.IsNullOrWhiteSpace(Company.Blocked))
{
<div class="alert alert-danger">
<h4>Ring til kontoret. Denne konto er spærret med kode '@Company.Blocked'</h4>
</div>
}
<div class="row bg-light border-1 border-dark rounded-3 p-3">
<div class="col">
<h3>@Activity.Name - @Activity.Account</h3>

View file

@ -0,0 +1,6 @@
@page "/companies/{CompanyId}/invoices"
<div class="row">
<div class="col">
<h2>Faktura oversigt</h2>
</div>
</div>

View file

@ -0,0 +1,14 @@
using Microsoft.AspNetCore.Components;
using Wonky.Client.HttpInterceptors;
using Wonky.Client.HttpInterfaces;
namespace Wonky.Client.Pages;
public partial class CrmCompanyInvoiceListPage
{
[Parameter] public string CompanyId { get; set; } = "";
[Inject] public ICrmCompanyHttpRepository CompanyRepo { get; set; }
[Inject] public HttpInterceptorService Interceptor { get; set; }
}

View file

@ -21,11 +21,17 @@
@attribute [Authorize(Roles = "Advisor")]
@page "/companies/{CompanyId}"
@if (!string.IsNullOrWhiteSpace(_company.Name))
@if (!string.IsNullOrWhiteSpace(Company.Name))
{
@if (!string.IsNullOrWhiteSpace(Company.Blocked))
{
<div class="alert alert-danger">
<h4>Ring til kontoret. Denne konto er spærret med kode '@Company.Blocked'</h4>
</div>
}
<div class="card">
<div class="card-header bg-dark text-white">
<h3>@_company.Name</h3>
<h3>@Company.Name</h3>
</div>
@if (_dk)
{
@ -70,16 +76,16 @@
<tbody>
<tr class="align-middle">
<th colspan="2">BEMÆRK</th>
<td colspan="3">
@if (string.IsNullOrWhiteSpace(_company.Note))
<td colspan="5">
@if (string.IsNullOrWhiteSpace(Company.Note))
{
<InputText name="note" id="note" class="form-control" @bind-Value="_company.Note"/>
<InputText name="note" id="note" class="form-control" @bind-Value="Company.Note"/>
}
else
{
<InputText name="note" id="note" class="form-control bg-warning text-black" @bind-Value="_company.Note"/>
<InputText name="note" id="note" class="form-control bg-warning text-black" @bind-Value="Company.Note"/>
}
<ValidationMessage For="@(() => _company.Note)"></ValidationMessage>
<ValidationMessage For="@(() => Company.Note)"></ValidationMessage>
</td>
</tr >
<tr class="align-middle">
@ -90,16 +96,15 @@
<DisplayStateComponent StateClass="@_vatState"></DisplayStateComponent>
</td>
<td>
<InputText id="vatNumber" class="form-control" @bind-Value="_company.VatNumber"/>
<ValidationMessage For="@(() => _company.VatNumber)"></ValidationMessage>
<InputText id="vatNumber" class="form-control" @bind-Value="Company.VatNumber"/>
<ValidationMessage For="@(() => Company.VatNumber)"></ValidationMessage>
@* <button class="btn btn-warning" type="button" @onclick="CallVatLookupModal">CVR opslag</button> *@
</td>
<th>
Telefon
Konto
</th>
<td>
<InputText id="phone" class="form-control" @bind-Value="_company.Phone"/>
<ValidationMessage For="@(() => _company.Phone)"></ValidationMessage>
<td colspan="3">
<input type="text" class="form-control" readonly value="@Company.Account"/>
</td>
</tr>
<tr class="align-middle">
@ -108,15 +113,15 @@
</th>
<td></td>
<td>
<InputText id="name" class="form-control" @bind-Value="_company.Name"/>
<ValidationMessage For="@(() => _company.Name)"></ValidationMessage>
<InputText id="name" class="form-control" @bind-Value="Company.Name"/>
<ValidationMessage For="@(() => Company.Name)"></ValidationMessage>
</td>
<th>
Attention
</th>
<td>
<InputText id="attention" class="form-control" @bind-Value="_company.Attention"/>
<ValidationMessage For="@(() => _company.Attention)"></ValidationMessage>
<td colspan="3">
<InputText id="attention" class="form-control" @bind-Value="Company.Attention"/>
<ValidationMessage For="@(() => Company.Attention)"></ValidationMessage>
</td>
</tr>
<tr class="align-middle">
@ -125,15 +130,15 @@
</th>
<td></td>
<td>
<InputText id="address1" class="form-control" @bind-Value="_company.Address1"/>
<ValidationMessage For="@(() => _company.Address1)"></ValidationMessage>
<InputText id="address1" class="form-control" @bind-Value="Company.Address1"/>
<ValidationMessage For="@(() => Company.Address1)"></ValidationMessage>
</td>
<th>
Adresse2
</th>
<td>
<InputText id="address2" class="form-control" @bind-Value="_company.Address2"/>
<ValidationMessage For="@(() => _company.Address2)"></ValidationMessage>
<td colspan="3">
<InputText id="address2" class="form-control" @bind-Value="Company.Address2"/>
<ValidationMessage For="@(() => Company.Address2)"></ValidationMessage>
</td>
</tr>
<tr class="align-middle">
@ -142,15 +147,15 @@
</th>
<td></td>
<td>
<InputText id="zipCode" class="form-control" @bind-Value="_company.ZipCode"/>
<ValidationMessage For="@(() => _company.ZipCode)"></ValidationMessage>
<InputText id="zipCode" class="form-control" @bind-Value="Company.ZipCode"/>
<ValidationMessage For="@(() => Company.ZipCode)"></ValidationMessage>
</td>
<th>
Bynavn
</th>
<td>
<InputText id="city" class="form-control" @bind-Value="_company.City"/>
<ValidationMessage For="@(() => _company.City)"></ValidationMessage>
<td colspan="3">
<InputText id="city" class="form-control" @bind-Value="Company.City"/>
<ValidationMessage For="@(() => Company.City)"></ValidationMessage>
</td>
</tr>
<tr class="align-middle">
@ -159,15 +164,22 @@
</th>
<td></td>
<td>
<InputText id="email" class="form-control" @bind-Value="_company.Email"/>
<ValidationMessage For="@(() => _company.Email)"></ValidationMessage>
<InputText id="email" class="form-control" @bind-Value="Company.Email"/>
<ValidationMessage For="@(() => Company.Email)"></ValidationMessage>
</td>
<th>
Telefon
</th>
<td>
<InputText id="phone" class="form-control" @bind-Value="Company.Phone"/>
<ValidationMessage For="@(() => Company.Phone)"></ValidationMessage>
</td>
<th>
Mobil
</th>
<td>
<InputText id="mobile" class="form-control" @bind-Value="_company.Mobile"/>
<ValidationMessage For="@(() => _company.Mobile)"></ValidationMessage>
<InputText id="mobile" class="form-control" @bind-Value="Company.Mobile"/>
<ValidationMessage For="@(() => Company.Mobile)"></ValidationMessage>
</td>
</tr>
<tr class="align-middle">
@ -184,7 +196,7 @@
<th>
Besøgt
</th>
<td>
<td colspan="3">
<InputDate id="lastVisit" class="form-control" @bind-Value="@_lastVisit"/>
</td>
</tr>
@ -194,11 +206,11 @@
</th>
<td></td>
<td>
<InputNumber id="interval" class="form-control" @bind-Value="_company.Interval"/>
<ValidationMessage For="@(() => _company.Interval)"></ValidationMessage>
<InputNumber id="interval" class="form-control" @bind-Value="Company.Interval"/>
<ValidationMessage For="@(() => Company.Interval)"></ValidationMessage>
</td>
<td colspan="2">
@if (_company.HasFolded == 1)
<td colspan="4">
@if (Company.HasFolded == 1)
{
<button type="button" class="btn btn-info" onclick="@ForceActivity">Aktiver besøg</button>
}
@ -207,20 +219,19 @@
</tbody>
</table>
</div>
<div style="display:@(_hideButtons ? "none" : "block")">
<div class="card-footer">
<div class="row">
<div class="row mb-2">
<div class="col">
<a class="btn btn-light border-dark d-block" href="/companies">Kundeliste</a>
<a class="btn btn-light border-dark d-block" href="/companies/@Company.CompanyId/invoices">Faktura</a>
</div>
<div class="col">
<a class="btn btn-light border-dark d-block" href="/companies/@_company.CompanyId/activities">Besøg oversigt</a>
<a class="btn btn-light border-dark d-block" href="/companies/@Company.CompanyId/activities">Besøg</a>
</div>
<div class="col">
<a class="btn btn-light border-dark d-block" href="/companies/@_company.CompanyId/h/i">Produktkøb</a>
<a class="btn btn-light border-dark d-block" href="/companies/@Company.CompanyId/h/i">Produkter</a>
</div>
<div class="col d-grid">
<button type="submit" class="btn btn-light border-dark d-block" disabled="@_working">Gem</button>
<div class="col d-block">
<button type="submit" class="btn btn-light border-dark d-block" disabled="@(_working)">Gem</button>
</div>
<div class="col">
<ActivityButton ActionLink="@_actionLink"
@ -231,7 +242,6 @@
</div>
</div>
</div>
</div>
</EditForm>
</div>
}

View file

@ -46,7 +46,7 @@ public partial class CrmCompanyViewPage : IDisposable
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public VatInfoLookupService _vatService { get; set; }
[Inject] public ILocalStorageService _storage { get; set; }
private CompanyDto _company { get; set; } = new();
private CompanyDto Company { get; set; } = new();
private EditContext _editContext { get; set; }
private List<VirkRegInfo> _vInfos { get; set; } = new();
private VirkRegInfo _virkRegInfo { get; set; } = new();
@ -68,6 +68,7 @@ public partial class CrmCompanyViewPage : IDisposable
private bool _dk { get; set; } = true;
private int _isDirty { get; set; }
private int _vatUpdated { get; set; }
private bool _blocked { get; set; } = true;
private VatLookupDkModal _vatLookupModal { get; set; } = new();
@ -85,32 +86,32 @@ public partial class CrmCompanyViewPage : IDisposable
_interceptor.RegisterEvent();
_interceptor.RegisterBeforeSendEvent();
_company = await _companyRepo.GetCompanyById(CompanyId);
_orgVat = _company.VatNumber;
_company.CountryCode = ux.CountryCode.ToLower();
_enableActivity = _company.ValidVat;
Company = await _companyRepo.GetCompanyById(CompanyId);
_orgVat = Company.VatNumber;
Company.CountryCode = ux.CountryCode.ToLower();
_enableActivity = Company.ValidVat;
// override if canvas which has account property as empty string or "NY"
if (_company.Account == "NY" || string.IsNullOrWhiteSpace(_company.Account))
if (Company.Account == "NY" || string.IsNullOrWhiteSpace(Company.Account))
_enableActivity = 1;
if (_dk)
_vatAddress = PrepareVatAddress(_company);
_vatAddress = PrepareVatAddress(Company);
if (_company.Interval == 0)
_company.Interval = 8;
if (Company.Interval == 0)
Company.Interval = 8;
_lastVisit = DateTime.Parse(_company.LastVisit);
_nextVisit = DateTime.Parse(_company.NextVisit);
_lastVisit = DateTime.Parse(Company.LastVisit);
_nextVisit = DateTime.Parse(Company.NextVisit);
if (_lastVisit.Year < 2020)
_lastVisit = DateTime.Parse("2020-01-01");
if (!_company.ValidDateSpan())
_nextVisit = _lastVisit.AddDays(_company.Interval * 7);
if (!Company.ValidDateSpan())
_nextVisit = _lastVisit.AddDays(Company.Interval * 7);
_visitState = Utils.GetVisitState($"{_nextVisit:yyyy-MM-dd}");
_actionLink = $"/companies/{CompanyId}/activities/new"; // used when drawing visit button
if(_company.HasFolded == 1)
if(Company.HasFolded == 1)
{
// this is only used if user has selected to show all customers
_hasFolded = true;
@ -120,13 +121,13 @@ public partial class CrmCompanyViewPage : IDisposable
else
{
// simple format validation if CRM indicates invalid vatNumber
if (_company.ValidVat == 0 && !string.IsNullOrWhiteSpace(_company.VatNumber))
_company.ValidVat = VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber) ? 1 : 0;
if (Company.ValidVat == 0 && !string.IsNullOrWhiteSpace(Company.VatNumber))
Company.ValidVat = VatUtils.ValidateFormat(Company.CountryCode, Company.VatNumber) ? 1 : 0;
// flags
_validVat = _company.ValidVat == 1; // flag set if company has a valid vatNumber
_vatState = _company.ValidVat == 1 ? "the-good" : "no-vat"; // assign css class
_validVat = Company.ValidVat == 1; // flag set if company has a valid vatNumber
_vatState = Company.ValidVat == 1 ? "the-good" : "no-vat"; // assign css class
}
_editContext = new EditContext(_company);
_editContext = new EditContext(Company);
_editContext.OnFieldChanged += HandleFieldChanged;
_editContext.OnValidationStateChanged += ValidationChanged;
}
@ -137,9 +138,9 @@ public partial class CrmCompanyViewPage : IDisposable
}
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
{
_nextVisit = _lastVisit.AddDays(_company.Interval * 7);
_nextVisit = _lastVisit.AddDays(Company.Interval * 7);
// simple validation of VAT format
if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber))
if (!VatUtils.ValidateFormat(Company.CountryCode, Company.VatNumber))
{
_formInvalid = true;
}
@ -159,7 +160,7 @@ public partial class CrmCompanyViewPage : IDisposable
_editContext.OnFieldChanged -= HandleFieldChanged;
_editContext.OnValidationStateChanged -= ValidationChanged;
_editContext = new EditContext(_company);
_editContext = new EditContext(Company);
_formInvalid = _editContext.Validate();
@ -169,8 +170,9 @@ public partial class CrmCompanyViewPage : IDisposable
private async Task SubmitUpdate()
{
_working = true;
// simple format validation if CRM indicates invalid vatNumber
if (!VatUtils.ValidateFormat(_company.CountryCode, _company.VatNumber))
if (!VatUtils.ValidateFormat(Company.CountryCode, Company.VatNumber))
{
_toast.ShowError($"CVR/VAT/ORG nummer mangler eller er ugyldig.");
StateHasChanged();
@ -178,27 +180,27 @@ public partial class CrmCompanyViewPage : IDisposable
}
_toast.ShowInfo("Vent venligst ....");
//_hideButtons = true;
_company.LastVisit = $"{_lastVisit:yyyy-MM-dd}";
_company.NextVisit = $"{_nextVisit:yyyy-MM-dd}";
_company.IsHidden = 0;
Company.LastVisit = $"{_lastVisit:yyyy-MM-dd}";
Company.NextVisit = $"{_nextVisit:yyyy-MM-dd}";
Company.IsHidden = 0;
// flag if backend should update ERP system
_company.UpdateErpVat = _vatUpdated;
Company.UpdateErpVat = _vatUpdated;
// flag base info has changed
_company.IsDirty = _isDirty;
Company.IsDirty = _isDirty;
var success = await _companyRepo.UpdateCompany(CompanyId, _company );
var success = await _companyRepo.UpdateCompany(CompanyId, Company );
_toast.ShowSuccess("Opdatering er afsendt. Der går nogle minutter inden data er opdateret.");
_company = await _companyRepo.GetCompanyById(_company.CompanyId);
_company.ValidVat = 1;
Company = await _companyRepo.GetCompanyById(Company.CompanyId);
Company.ValidVat = 1;
_enableActivity = 1;
if (_virkRegInfo.States[0].State.ToLower() != "normal")
{
_company.HasFolded = 1;
Company.HasFolded = 1;
}
StateHasChanged();
//_hideButtons = false;
_working = false;
}
private async Task GetInfoFromAddress(VatAddress address)
@ -253,23 +255,23 @@ public partial class CrmCompanyViewPage : IDisposable
private void OnSelectedCompany(VirkRegInfo regInfo)
{
_validVat = regInfo.States[0].State.ToLower() == "normal";
_company.HasFolded = _validVat ? 1 : 0;
Company.HasFolded = _validVat ? 1 : 0;
_enableActivity = _validVat ? 1 : 0;
_vatState = regInfo.States[0].State.ToLower() == "normal" ? "the-good" : "the-dead";
if (regInfo.SyncAll)
{
_company.VatNumber = _virkRegInfo.VatNumber;
_company.Name = _virkRegInfo.Name;
_company.Address1 = _virkRegInfo.Address;
_company.Address2 = _virkRegInfo.CoName;
_company.ZipCode = _virkRegInfo.ZipCode;
_company.City = _virkRegInfo.City;
Company.VatNumber = _virkRegInfo.VatNumber;
Company.Name = _virkRegInfo.Name;
Company.Address1 = _virkRegInfo.Address;
Company.Address2 = _virkRegInfo.CoName;
Company.ZipCode = _virkRegInfo.ZipCode;
Company.City = _virkRegInfo.City;
_isDirty = 1;
}
else
{
_company.VatNumber = _virkRegInfo.VatNumber;
Company.VatNumber = _virkRegInfo.VatNumber;
_vatUpdated = 1;
}
StateHasChanged();
@ -279,23 +281,23 @@ public partial class CrmCompanyViewPage : IDisposable
{
_virkRegInfo = (from x in _vInfos where x.VatNumber == vatNumber select x).First();
_validVat = _virkRegInfo.States[0].State.ToLower() == "normal";
_company.HasFolded = _validVat ? 1 : 0;
Company.HasFolded = _validVat ? 1 : 0;
_enableActivity = _validVat ? 1 : 0;
_vatState = _virkRegInfo.States[0].State.ToLower() == "normal" ? "the-good" : "the-dead";
if (syncAll)
{
_company.VatNumber = _virkRegInfo.VatNumber;
_company.Name = _virkRegInfo.Name;
_company.Address1 = _virkRegInfo.Address;
_company.Address2 = _virkRegInfo.CoName;
_company.ZipCode = _virkRegInfo.ZipCode;
_company.City = _virkRegInfo.City;
Company.VatNumber = _virkRegInfo.VatNumber;
Company.Name = _virkRegInfo.Name;
Company.Address1 = _virkRegInfo.Address;
Company.Address2 = _virkRegInfo.CoName;
Company.ZipCode = _virkRegInfo.ZipCode;
Company.City = _virkRegInfo.City;
_isDirty = 1;
}
else
{
_company.VatNumber = _virkRegInfo.VatNumber;
Company.VatNumber = _virkRegInfo.VatNumber;
_vatUpdated = 1;
}
// empty list

View file

@ -86,10 +86,12 @@
</button>
</th>
<td>
@* <div style="display:@(_working ? "none" : "block");"> *@
<button type="button" class="btn btn-success"
@onclick="SubmitReport" disabled="@(_noFigures || _working)">
Gem Rapport
</button>
@* </div> *@
</td>
</tr>
</tbody>

View file

@ -98,21 +98,24 @@ public partial class CrmReportNewPage : IDisposable
private async Task ReportSaveConfirmed()
{
// attempt to eliminate doubled click on submit button
if (_working)
return;
_working = true;
var result = await CrmReportRepo.PostReport($"{_workDate:yyyy-MM-dd}", _report);
// reset km and date confirmation
await PrefsService.SetKmMorning(0);
await PrefsService.SetDateConfirmed(false);
_toast.ShowInfo($"Rapport oprettet {_workDate}");
_working = false;
_navigator.NavigateTo("/home");
_navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}");
}
private void SubmitReport()
{
// attempt to eliminate doubled click on submit button
if (_working)
return;
if (string.IsNullOrWhiteSpace(_report.DayTypeEnum))
{
_toast.ShowError("Dagtype skal vælges");
@ -152,7 +155,6 @@ public partial class CrmReportNewPage : IDisposable
_prompt = $"Rapport for {_workDate.ToLongDateString()}?";
_confirmReport.Show();
}
private void OnTimeChanged()
@ -187,11 +189,11 @@ public partial class CrmReportNewPage : IDisposable
var data = await CrmReportRepo.InitializeReportData($"{_workDate:yyyy-MM-dd}");
if(data.ReportClosed)
_navigator.NavigateTo($"/sales-reports/view/{_workDate:yyyy-MM-dd}");
_noFigures = false;
_report.Figures = data.ReportData;
_init = data.ReportData;
_activities = data.ReportItems;
_report.Figures.KmMorning = _prefs.KmMorning;
_noFigures = false;
_working = false;
}

View file

@ -35,6 +35,6 @@
</div>
</div>
<div class="card-body">
<TaskItemTableComponent TaskItemList="_taskItems" />
<TaskItemTableComponent TaskItemList="TaskItems" />
</div>
</div>

View file

@ -27,36 +27,36 @@ namespace Wonky.Client.Pages;
public partial class CrmTaskItemListPage : IDisposable
{
[Inject] public PreferenceService Prefs { get; set; }
[Inject] public PreferenceService PreferenceService { get; set; }
[Inject] public ILogger<CrmTaskItemListPage> Logger { get; set; }
[Inject] public HttpInterceptorService _interceptor { get; set; }
[Inject] public NavigationManager _navigator { get; set; }
[Inject] public ICrmTaskItemHttpRepository CrmTaskItemRepo { get; set; }
[Inject] public IToastService _toast { get; set; }
private Preferences _prefs { get; set; } = new();
private string _workDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
private bool _reportExist = false;
private List<TaskItemDto>? _taskItems { get; set; } = new();
[Inject] public HttpInterceptorService Interceptor { get; set; }
[Inject] public NavigationManager Navigator { get; set; }
[Inject] public ICrmTaskItemHttpRepository TaskItemRepo { get; set; }
[Inject] public IToastService Toaster { get; set; }
private Preferences Prefs { get; set; } = new();
private string WorkDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}";
private bool ReportExist = false;
private List<TaskItemDto> TaskItems { get; set; } = new();
protected override async Task OnInitializedAsync()
{
_prefs = await Prefs.GetPreferences();
if(!string.IsNullOrWhiteSpace(_prefs.WorkDate))
_workDate = _prefs.WorkDate;
Prefs = await PreferenceService.GetPreferences();
if(!string.IsNullOrWhiteSpace(Prefs.WorkDate))
WorkDate = Prefs.WorkDate;
_interceptor.RegisterEvent();
_interceptor.RegisterBeforeSendEvent();
await GetTaskItems(_workDate);
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
await GetTaskItems(WorkDate);
}
private async Task GetTaskItems(string workDate)
{
_toast.ShowInfo("Vent nogle sekunder for data");
_taskItems = await CrmTaskItemRepo.GetTaskList(workDate);
Toaster.ShowInfo("Vent nogle sekunder for data");
TaskItems = await TaskItemRepo.GetTaskList(workDate);
}
public void Dispose()
{
_interceptor.DisposeEvent();
Interceptor.DisposeEvent();
}
}

View file

@ -19,8 +19,6 @@
@attribute [Authorize(Roles = "Advisor")]
@page "/tasks/{TaskItemId}"
@* {"TaskItemId":"","ErpUserId":"","ReferenceId":"","Name":"","Description":"","DueTimestamp":"","TaskTypeEnum":"","Interval":0,"IsCompleted":false,"OverDue":false,"Recurring":false} *@
<div class="card">
<div class="card-header">
<h3>Opgave</h3>

View file

@ -24,8 +24,6 @@ public partial class ConfirmationModal
[Parameter] public string BodyMessage { get; set; } = "";
[Parameter] public EventCallback OnOkClicked { get; set; }
public void Show()
{
_modalDisplay = "block;";

View file

@ -1,13 +1,13 @@
{
"appInfo": {
"name": "Wonky Client",
"version": "0.30.3",
"rc": false,
"version": "0.36.1",
"rc": true,
"sandBox": false,
"image": "grumpy-coder.png"
},
"apiConfig": {
"innoBaseUrl": "https://app.innotec.dk",
"innoBaseUrl": "https://zeta.innotec.dk",
"glsTrackUrl": "https://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DK01/DA/5004.htm?txtAction=71000&txtRefNo=",
"glsId": "",
"serviceVirk": "api/v2/services/virk",

View file

@ -115,6 +115,12 @@ public class CompanyDto
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")]
public string Attention { get; set; } = "";
/// <summary>
/// ERP block state
/// </summary>
/// <remarks>Empty string - Customer not blocked</remarks>
public string Blocked { get; set; } = "";
/// <summary>
/// Country code ISO
/// </summary>