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

View file

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

View file

@ -14,7 +14,7 @@
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html] // 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/> <DataAnnotationsValidator/>
<div class="row"> <div class="row">
<div class="col"> <div class="col">
@ -33,7 +33,7 @@
<ValidationMessage For="@(() => Address.ZipCode)" /> <ValidationMessage For="@(() => Address.ZipCode)" />
</div> </div>
<div class="col"> <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>
</div> </div>
</EditForm> </EditForm>

View file

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

View file

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

View file

@ -49,6 +49,7 @@ public partial class CompanyUpdate : IDisposable
private DateTime NextVisit { get; set; } private DateTime NextVisit { get; set; }
private string _vatState { get; set; } = "the-ugly"; private string _vatState { get; set; } = "the-ugly";
private VatUtils _vatUtils { get; set; } private VatUtils _vatUtils { get; set; }
private VatAddress vatAddress = new();
protected override async Task OnInitializedAsync() 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"; _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() private async Task Update()
@ -92,7 +101,7 @@ public partial class CompanyUpdate : IDisposable
await CompanyRepo.UpdateCompany(DtoNgCompany); await CompanyRepo.UpdateCompany(DtoNgCompany);
ToastService.ShowSuccess($"Godt så. Firma '{DtoNgCompany!.Name}' er opdateret."); ToastService.ShowSuccess($"'{DtoNgCompany!.Name}' er opdateret.");
Navigation.NavigateTo($"/company/{DtoNgCompany.CompanyId}"); Navigation.NavigateTo($"/company/{DtoNgCompany.CompanyId}");
} }
private async Task GetInfoFromVat(string vatNumber) private async Task GetInfoFromVat(string vatNumber)

View file

@ -79,7 +79,14 @@
<div class="d-flex align-items-end"> <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="/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/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> </div>
</div> </div>

View file

@ -37,7 +37,8 @@ public partial class CompanyView : IDisposable
[Parameter] public string CompanyId { get; set; } = ""; [Parameter] public string CompanyId { get; set; } = "";
private DtoNgCompany DtoNgCompany { get; set; } = new (); private DtoNgCompany DtoNgCompany { get; set; } = new ();
private string _vatState { get; set; } = "the-dead"; private string _vatState { get; set; } = "the-dead";
private bool _hasFolded { get; set; } private bool _hasFolded;
private bool _vatInvalid;
private VatUtils _vatUtils { get; set; } private VatUtils _vatUtils { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
@ -53,7 +54,8 @@ public partial class CompanyView : IDisposable
} }
else 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 @using Wonky.Client.Components
@if (DraftContext != null) @if (DraftContext != null)
{ {
<h2>@_poDraft.Name</h2>
<EditForm EditContext="DraftContext" OnValidSubmit="CreateActivity"> <EditForm EditContext="DraftContext" OnValidSubmit="CreateActivity">
<DataAnnotationsValidator/> <DataAnnotationsValidator/>
@ -31,12 +30,13 @@
<button class="accordion-button bg-light" type="button" <button class="accordion-button bg-light" type="button"
data-bs-toggle="collapse" data-bs-target="#activityBody" data-bs-toggle="collapse" data-bs-target="#activityBody"
aria-expanded="true" aria-controls="activityBody"> aria-expanded="true" aria-controls="activityBody">
Aktivitet @_poDraft.Name - @_poDraft.Account
</button> </button>
</h2> </h2>
<div id="activityBody" class="accordion-collapse collapse show" <div id="activityBody" class="accordion-collapse collapse show"
aria-labelledby="activityHeader" data-bs-parent="#crmActivity"> aria-labelledby="activityHeader" data-bs-parent="#crmActivity">
<div class="accordion-body"> <div class="accordion-body">
@*
<div class="row mb-1"> <div class="row mb-1">
<label for="account" class="col-md-2 col-form-label">Konto</label> <label for="account" class="col-md-2 col-form-label">Konto</label>
<div class="col-md-4"> <div class="col-md-4">
@ -49,24 +49,28 @@
<ValidationMessage For="@(() => _poDraft.SalesRep)"></ValidationMessage> <ValidationMessage For="@(() => _poDraft.SalesRep)"></ValidationMessage>
</div> </div>
</div> </div>
*@
<div class="row mb-1"> <div class="row mb-1">
<label for="activityType" class="col-md-2 col-form-label">Kontakt</label> <label for="activityType" class="col-md-2 col-form-label">Kontakt</label>
<div class="col-md-4"> <div class="col-md-4">
<select id="activityType" class="form-select" @bind-Value="@_poDraft.ActivityTypeEnum" @bind-Value:event="oninput" @onchange="CheckActivity"> <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="onSite">Besøg</option>
<option value="phone">Telefon</option> <option value="phone">Telefon</option>
</select> </select>
<ValidationMessage For="@(() => _poDraft.ActivityTypeEnum)"></ValidationMessage>
</div> </div>
<label for="statusType" class="col-md-2 col-form-label">Status</label> <label for="statusType" class="col-md-2 col-form-label">Status</label>
<div class="col-md-4"> <div class="col-md-4">
<select id="statusType" class="form-select" @bind-Value="@_poDraft.ActivityStatusEnum" @bind-Value:event="oninput" @onchange="CheckStatus"> <select id="statusType" class="form-select" @bind-Value="@_poDraft.ActivityStatusEnum" @bind-Value:event="oninput" @onchange="CheckStatus">
<option value="" selected>VÆLG</option> <option value="" selected>IKKE VALGT</option>
<option value="order">Ordre</option> <option value="noSale">Ingen salg</option>
<option value="offer">Tilbud</option> <option value="order">Bestilling</option>
<option value="quote">Tilbud</option>
<option value="canvas">Kanvas</option> <option value="canvas">Kanvas</option>
</select> </select>
<ValidationMessage For="@(() => _poDraft.ActivityStatusEnum)"></ValidationMessage>
</div> </div>
</div> </div>
@ -76,7 +80,7 @@
<InputText id="vatNumber" class="form-control" @bind-Value="_poDraft.VatNumber"/> <InputText id="vatNumber" class="form-control" @bind-Value="_poDraft.VatNumber"/>
<ValidationMessage For="@(() => _poDraft.VatNumber)"></ValidationMessage> <ValidationMessage For="@(() => _poDraft.VatNumber)"></ValidationMessage>
</div> </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"> <div class="col-md-4">
<InputText id="email" class="form-control" @bind-Value="_poDraft.EMail"/> <InputText id="email" class="form-control" @bind-Value="_poDraft.EMail"/>
<ValidationMessage For="@(() => _poDraft.EMail)"></ValidationMessage> <ValidationMessage For="@(() => _poDraft.EMail)"></ValidationMessage>
@ -87,7 +91,7 @@
<div class="col-md-4"> <div class="col-md-4">
<InputDate id="activityDate" class="form-control" @bind-Value="@(_draftDate)"/> <InputDate id="activityDate" class="form-control" @bind-Value="@(_draftDate)"/>
</div> </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"> <div class="col-md-4">
<InputCheckbox id="checkDate" class="form-check-input" @bind-Value="@_poDraft.CheckDate" @onclick="CheckDate"/> <InputCheckbox id="checkDate" class="form-check-input" @bind-Value="@_poDraft.CheckDate" @onclick="CheckDate"/>
</div> </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="card-header">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<h2>500 - Inter server fejl</h2> <h2>500 - Intern server fejl</h2>
</div> </div>
</div> </div>
</div> </div>
@ -29,7 +29,7 @@
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col"> <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> </div>
</div> </div>

View file

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