quote list cosmetics - better date parser in component

This commit is contained in:
Frede Hundewadt 2022-12-20 05:34:55 +01:00
parent 1a5dba0395
commit aa81f14514
6 changed files with 42 additions and 34 deletions

View file

@ -4,19 +4,21 @@
<div class="list-group list-group-flush">
<div class="list-group-item bg-dark text-white">
<div class="row g-3">
<div class="col-sm-2">
Reference
</div>
<div class="col-sm-4">
Kunde
</div>
<div class="col-sm-2">
Dato
</div>
<div class="col-sm-1">
<div class="col-sm-3 -text-center">
Skift status
</div>
<div class="col-sm-1 text-center">
Status
</div>
<div class="col-sm-3"></div>
<div class="col-sm-2 text-center">
Reference
</div>
</div>
</div>
@if (Quotes.Any())
@ -25,27 +27,26 @@
{
<div class="list-group-item list-group-item-action">
<div class="row align-items-center">
<div class="col-sm-2">
<a class="btn btn-outline-dark d-block" style="font-family:monospace;font-size: 14px;"
href="/companies/@quote.Company.CompanyId/quotes/@quote.ActivityId">@quote.ESalesNumber</a>
</div>
<div class="col-sm-4">
@quote.Company.Name
</div>
<di class="col-sm-2">
@quote.OrderDate
</di>
<div class="col-sm-1">
<div class="col-sm-3 text-center">
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Lose)"><i class="bi-trash-fill"></i></button>
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Archive)"><i class="bi-archive-fill"></i> </button>
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Note)"><i class="bi-tag-fill"></i> </button>
<button type="button" class="btn btn-success" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Win)"><i class="bi-cart-fill"></i> </button>
</div>
<div class="col-sm-1 text-center">
@switch (quote.QuoteStatusEnum)
{
case "None":
<i class="bi-question-circle-fill"></i>
break;
case "Win":
<span>Ordre</span>
break;
case "Lose":
<i class="bi-trash"></i>
<i class="bi-trash-fill"></i>
break;
case "Note":
<i class="bi-tag-fill"></i>
@ -58,19 +59,24 @@
break;
}
</div>
<div class="col-sm-3">
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Lose)"><i class="bi-trash2-fill"></i></button>
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Archive)"><i class="bi-archive-fill"></i> </button>
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Note)"><i class="bi-tag-fill"></i> </button>
<button type="button" class="btn btn-success" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Win)"><i class="bi-cart-fill"></i> </button>
<div class="col-sm-2 text-center">
<a class="btn btn-outline-dark d-block" style="font-family:monospace;font-size: 14px;"
href="/companies/@quote.Company.CompanyId/quotes/@quote.ActivityId">@quote.ESalesNumber</a>
</div>
@if (!string.IsNullOrWhiteSpace(quote.OfficeNote))
{
<div class="col-sm-2"></div>
<div class="col-sm-2 text-end">Note</div>
<div class="col-sm-10">
<i class="bi-pencil"></i> @quote.OfficeNote
</div>
}
@if (!string.IsNullOrWhiteSpace(quote.CrmNote))
{
<div class="col-sm-2 text-end">CRM note</div>
<div class="col-sm-10">
<i class="bi-pencil"></i> @quote.CrmNote
</div>
}
</div>
</div>
}

View file

@ -70,9 +70,12 @@ public partial class WorkDateComponent : IDisposable
/// <param name="e"></param>
private async Task OnDateChanged(ChangeEventArgs e)
{
var val = DateTime.Parse(e.Value.ToString());
await Prefs.SetWorkDate(val);
await OnChangedCallback.InvokeAsync($"{val:yyyy-MM-dd}");
var x = DateTime.TryParse(e.Value.ToString(), out var val);
if (x)
{
await Prefs.SetWorkDate(val);
await OnChangedCallback.InvokeAsync($"{val:yyyy-MM-dd}");
}
}
/// <summary>

View file

@ -23,16 +23,16 @@ public partial class CrmQuotesListPage : IDisposable
private List<ReportItemView> Quotes { get; set; } = new();
private List<ReportItemView> _quotes { get; set; } = new();
private bool Working { get; set; } = true;
private QStatus QFilter { get; set; } = QStatus.None;
private QStatus QFilter { get; set; } = QStatus.All;
protected override async Task OnInitializedAsync()
{
Interceptor.RegisterEvent();
Interceptor.RegisterBeforeSendEvent();
Quotes = await ActivityRepo.GetQuotes();
await Storage.SetItemAsync("quotes", Quotes);
await Storage.SetItemAsync("quotes", Quotes.OrderBy(x => x.Company.Name));
if (Quotes.Any())
_quotes = Quotes.Where(x => x.QuoteStatusEnum is "Note" or "None").ToList();
await FilterQuotes(QFilter);
Working = false;
}
@ -43,7 +43,6 @@ public partial class CrmQuotesListPage : IDisposable
_quotes = QFilter switch
{
QStatus.None => Quotes.Where(x => x.QuoteStatusEnum is "None").ToList(),
QStatus.Win => Quotes.Where(x => x.QuoteStatusEnum is "Win").ToList(),
QStatus.Lose => Quotes.Where(x => x.QuoteStatusEnum is "Lose").ToList(),
QStatus.Archive => Quotes.Where(x => x.QuoteStatusEnum is "Archive").ToList(),
QStatus.Note => Quotes.Where(x => x.QuoteStatusEnum is "Note").ToList(),
@ -66,7 +65,7 @@ public partial class CrmQuotesListPage : IDisposable
while (!Quotes.Any())
await Task.Delay(1000);
await Storage.SetItemAsync("quotes", Quotes);
await Storage.SetItemAsync("quotes", Quotes.OrderBy(x => x.Company.Name));
await FilterQuotes(QFilter);

View file

@ -97,7 +97,7 @@
</div>
<div class="nav-item px-3">
<NavLink class="nav-link ps-2" href="/open-quotes">
<i class="bi-calculator pe-2" style="font-size:1.3em;" aria-hidden="true"></i> Åbne Tilbud
<i class="bi-calculator pe-2" style="font-size:1.3em;" aria-hidden="true"></i> Aftaler/Tilbud
</NavLink>
</div>
<div class="nav-item px-3">

View file

@ -11,10 +11,10 @@
<PackageReference Include="Blazored.LocalStorage" Version="4.3.0" />
<PackageReference Include="Blazored.Toast" Version="3.2.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.11" />
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="6.0.11" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.11" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.11" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.12" />
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="6.0.12" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.12" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.12" PrivateAssets="all" />
<PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />

View file

@ -1,12 +1,12 @@
{
"appInfo": {
"name": "Wonky Client",
"version": "0.85.7",
"rc": true,
"sandBox": false,
"image": "grumpy-coder.png"
},
"apiConfig": {
"baseUrl": "https://dev.innotec.dk",
"catalog": "api/v2/catalog",
"crmCustomers": "api/v2/crm/companies",
"crmInventoryExt": "history/inventory",