This commit is contained in:
Frede Hundewadt 2022-05-26 16:04:29 +02:00
parent 9c5c698ecf
commit 453a674e03
12 changed files with 55 additions and 30 deletions

View file

@ -17,7 +17,7 @@
<span class="version">@Name</span> <span class="version">@Version</span>@if(IsBeta){<span class="version">-beta</span>}
@code
{
private const string Version = "0.2.37";
private const string Version = "0.2.40";
private const string Name = "wwo";
private const bool IsBeta = true;
}

View file

@ -15,8 +15,4 @@
//
*@
<PageTitle>Innotec</PageTitle>
<div class="img-fluid text-center">
<img src="wonky-logo.png" alt="Wonky Logo"/>
</div>
<PageTitle>Innotec Danmark A/S</PageTitle>

View file

@ -14,7 +14,7 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
//
*@
<EditForm EditContext="_editAddress" OnValidSubmit="SubmitForm">
<EditForm EditContext="_editContext" OnValidSubmit="SubmitForm">
<DataAnnotationsValidator/>
<div class="row">
<div class="col">
@ -33,7 +33,7 @@
<ValidationMessage For="@(() => Address.ZipCode)" />
</div>
<div class="col">
<button class="btn btn-primary" type="submit" disabled="@_formInvalid">HENT</button>
<button class="btn btn-primary" type="submit">HENT</button>
</div>
</div>
</EditForm>

View file

@ -20,26 +20,27 @@ using Wonky.Client.Models;
namespace Wonky.Client.Components;
public partial class VatAddressInputComponent : IDisposable
{
[Parameter] public VatAddress Address { get; set; } = new();
private EditContext? _editAddress;
[Parameter] public VatAddress Address { get; set; }
private EditContext _editContext { get; set; }
private bool _formInvalid = true;
[Parameter] public EventCallback<VatAddress> OnValidSubmit { get; set; }
protected override void OnInitialized()
{
_editAddress = new EditContext(Address);
_editAddress.OnFieldChanged += HandleFieldChanged;
_editContext = new EditContext(Address);
_editContext.OnFieldChanged += HandleFieldChanged;
}
private async Task SubmitForm()
{
await OnValidSubmit.InvokeAsync(Address);
}
private void HandleFieldChanged(object? sender, FieldChangedEventArgs e)
{
_formInvalid = !_editAddress!.Validate();
_formInvalid = !_editContext.Validate();
StateHasChanged();
}
public void Dispose()
{
_editAddress!.OnFieldChanged -= HandleFieldChanged;
_editContext.OnFieldChanged -= HandleFieldChanged;
}
}

View file

@ -30,7 +30,7 @@
<VatNumberInputComponent OnValidSubmit="GetInfoFromVat"/>
</div>
<div class="card-body">
<VatAddressInputComponent OnValidSubmit="GetInfoFromAddress"/>
<VatAddressInputComponent Address="vatAddress" OnValidSubmit="GetInfoFromAddress"/>
</div>
@if (VInfos.Any())
{

View file

@ -49,6 +49,7 @@ public partial class CompanyUpdate : IDisposable
private DateTime NextVisit { get; set; }
private string _vatState { get; set; } = "the-ugly";
private VatUtils _vatUtils { get; set; }
private VatAddress vatAddress = new();
protected override async Task OnInitializedAsync()
{
@ -75,6 +76,14 @@ public partial class CompanyUpdate : IDisposable
{
_vatState = _vatUtils.ValidateFormat(DtoNgCompany.CountryCode, DtoNgCompany.VatNumber) ? "the-good" : "the-draw";
}
var digits = "123456789".ToCharArray();
var pos1 = DtoNgCompany.Address1.IndexOfAny(digits);
var pos2 = DtoNgCompany.Address2.IndexOfAny(digits);
vatAddress.ZipCode = DtoNgCompany.ZipCode;
vatAddress.StreetName = pos1 != 0 ? DtoNgCompany.Address1[..pos1] : DtoNgCompany.Address2[..pos2];
vatAddress.HouseNumber = pos1 != 0 ? DtoNgCompany.Address1[pos1..] : DtoNgCompany.Address2[pos2..];
}
private async Task Update()
@ -92,7 +101,7 @@ public partial class CompanyUpdate : IDisposable
await CompanyRepo.UpdateCompany(DtoNgCompany);
ToastService.ShowSuccess($"Godt så. Firma '{DtoNgCompany!.Name}' er opdateret.");
ToastService.ShowSuccess($"'{DtoNgCompany!.Name}' er opdateret.");
Navigation.NavigateTo($"/company/{DtoNgCompany.CompanyId}");
}
private async Task GetInfoFromVat(string vatNumber)

View file

@ -79,7 +79,14 @@
<div class="d-flex align-items-end">
<a class="btn btn-primary mx-2" href="/companies">Tilbage</a>
<a class="btn btn-primary mx-2" href="/company/@DtoNgCompany.CompanyId/update">Rediger</a>
<a class="btn btn-primary mx-2" href="/company/@DtoNgCompany.CompanyId/activity">Aktivitet</a>
@if (_vatInvalid)
{
<a type="button" class="btn btn-primary mx-2 disabled" aria-disabled="true">Aktivitet</a>
}
else
{
<a type="button" class="btn btn-primary mx-2" href="/company/@DtoNgCompany.CompanyId/activity">Aktivitet</a>
}
</div>
</div>
</div>

View file

@ -37,7 +37,8 @@ public partial class CompanyView : IDisposable
[Parameter] public string CompanyId { get; set; } = "";
private DtoNgCompany DtoNgCompany { get; set; } = new ();
private string _vatState { get; set; } = "the-dead";
private bool _hasFolded { get; set; }
private bool _hasFolded;
private bool _vatInvalid;
private VatUtils _vatUtils { get; set; }
protected override async Task OnInitializedAsync()
@ -53,7 +54,8 @@ public partial class CompanyView : IDisposable
}
else
{
_vatState = _vatUtils.ValidateFormat(DtoNgCompany.CountryCode, DtoNgCompany.VatNumber) ? "the-good" : "the-draw";
_vatInvalid = !_vatUtils.ValidateFormat(DtoNgCompany.CountryCode, DtoNgCompany.VatNumber);
_vatState = _vatInvalid ? "the-draw" : "the-good";
}
}

View file

@ -21,7 +21,6 @@
@using Wonky.Client.Components
@if (DraftContext != null)
{
<h2>@_poDraft.Name</h2>
<EditForm EditContext="DraftContext" OnValidSubmit="CreateActivity">
<DataAnnotationsValidator/>
@ -31,12 +30,13 @@
<button class="accordion-button bg-light" type="button"
data-bs-toggle="collapse" data-bs-target="#activityBody"
aria-expanded="true" aria-controls="activityBody">
Aktivitet
@_poDraft.Name - @_poDraft.Account
</button>
</h2>
<div id="activityBody" class="accordion-collapse collapse show"
aria-labelledby="activityHeader" data-bs-parent="#crmActivity">
<div class="accordion-body">
@*
<div class="row mb-1">
<label for="account" class="col-md-2 col-form-label">Konto</label>
<div class="col-md-4">
@ -49,24 +49,28 @@
<ValidationMessage For="@(() => _poDraft.SalesRep)"></ValidationMessage>
</div>
</div>
*@
<div class="row mb-1">
<label for="activityType" class="col-md-2 col-form-label">Kontakt</label>
<div class="col-md-4">
<select id="activityType" class="form-select" @bind-Value="@_poDraft.ActivityTypeEnum" @bind-Value:event="oninput" @onchange="CheckActivity">
<option value="" selected>VÆLG</option>
<option value="" selected>IKKE VALGT</option>
<option value="onSite">Besøg</option>
<option value="phone">Telefon</option>
</select>
<ValidationMessage For="@(() => _poDraft.ActivityTypeEnum)"></ValidationMessage>
</div>
<label for="statusType" class="col-md-2 col-form-label">Status</label>
<div class="col-md-4">
<select id="statusType" class="form-select" @bind-Value="@_poDraft.ActivityStatusEnum" @bind-Value:event="oninput" @onchange="CheckStatus">
<option value="" selected>VÆLG</option>
<option value="order">Ordre</option>
<option value="offer">Tilbud</option>
<option value="" selected>IKKE VALGT</option>
<option value="noSale">Ingen salg</option>
<option value="order">Bestilling</option>
<option value="quote">Tilbud</option>
<option value="canvas">Kanvas</option>
</select>
<ValidationMessage For="@(() => _poDraft.ActivityStatusEnum)"></ValidationMessage>
</div>
</div>
@ -76,7 +80,7 @@
<InputText id="vatNumber" class="form-control" @bind-Value="_poDraft.VatNumber"/>
<ValidationMessage For="@(() => _poDraft.VatNumber)"></ValidationMessage>
</div>
<label for="email" class="col-md-2 col-form-label">EMail</label>
<label for="email" class="col-md-2 col-form-label">Epost</label>
<div class="col-md-4">
<InputText id="email" class="form-control" @bind-Value="_poDraft.EMail"/>
<ValidationMessage For="@(() => _poDraft.EMail)"></ValidationMessage>
@ -87,7 +91,7 @@
<div class="col-md-4">
<InputDate id="activityDate" class="form-control" @bind-Value="@(_draftDate)"/>
</div>
<label for="checkDate" class="col-md-2 form-check-label">Bekræft dato?</label>
<label for="checkDate" class="col-md-2 form-check-label">Dato?</label>
<div class="col-md-4">
<InputCheckbox id="checkDate" class="form-check-input" @bind-Value="@_poDraft.CheckDate" @onclick="CheckDate"/>
</div>

View file

@ -0,0 +1,6 @@
@page "/CrmReport"
<h3>CrmReport</h3>
@code {
}

View file

@ -21,7 +21,7 @@
<div class="card-header">
<div class="row">
<div class="col">
<h2>500 - Inter server fejl</h2>
<h2>500 - Intern server fejl</h2>
</div>
</div>
</div>
@ -29,7 +29,7 @@
<div class="card-body">
<div class="row">
<div class="col">
Der er opstået en fejl - det er alt vi ved.
Der er opstået en fejl - det hjælper ikke at prøve igen.
</div>
</div>
</div>

View file

@ -7,7 +7,7 @@
}
},
"apiConfig": {
"baseAddress": "https://app.innotec.dk",
"baseAddress": "https://staging.innotec.dk",
"tokenPath": "token",
"userInfo": "api/auth/userinfo",
"customerEndpoint": "api/v2/crm/companies",