quote list cosmetics - better date parser in component
This commit is contained in:
parent
1a5dba0395
commit
aa81f14514
6 changed files with 42 additions and 34 deletions
|
@ -4,19 +4,21 @@
|
||||||
<div class="list-group list-group-flush">
|
<div class="list-group list-group-flush">
|
||||||
<div class="list-group-item bg-dark text-white">
|
<div class="list-group-item bg-dark text-white">
|
||||||
<div class="row g-3">
|
<div class="row g-3">
|
||||||
<div class="col-sm-2">
|
|
||||||
Reference
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
Kunde
|
Kunde
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
Dato
|
Dato
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-1">
|
<div class="col-sm-3 -text-center">
|
||||||
|
Skift status
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-1 text-center">
|
||||||
Status
|
Status
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3"></div>
|
<div class="col-sm-2 text-center">
|
||||||
|
Reference
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@if (Quotes.Any())
|
@if (Quotes.Any())
|
||||||
|
@ -25,27 +27,26 @@
|
||||||
{
|
{
|
||||||
<div class="list-group-item list-group-item-action">
|
<div class="list-group-item list-group-item-action">
|
||||||
<div class="row align-items-center">
|
<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">
|
<div class="col-sm-4">
|
||||||
@quote.Company.Name
|
@quote.Company.Name
|
||||||
</div>
|
</div>
|
||||||
<di class="col-sm-2">
|
<di class="col-sm-2">
|
||||||
@quote.OrderDate
|
@quote.OrderDate
|
||||||
</di>
|
</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)
|
@switch (quote.QuoteStatusEnum)
|
||||||
{
|
{
|
||||||
case "None":
|
case "None":
|
||||||
<i class="bi-question-circle-fill"></i>
|
<i class="bi-question-circle-fill"></i>
|
||||||
break;
|
break;
|
||||||
case "Win":
|
|
||||||
<span>Ordre</span>
|
|
||||||
break;
|
|
||||||
case "Lose":
|
case "Lose":
|
||||||
<i class="bi-trash"></i>
|
<i class="bi-trash-fill"></i>
|
||||||
break;
|
break;
|
||||||
case "Note":
|
case "Note":
|
||||||
<i class="bi-tag-fill"></i>
|
<i class="bi-tag-fill"></i>
|
||||||
|
@ -58,19 +59,24 @@
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-2 text-center">
|
||||||
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Lose)"><i class="bi-trash2-fill"></i></button>
|
<a class="btn btn-outline-dark d-block" style="font-family:monospace;font-size: 14px;"
|
||||||
<button type="button" class="btn btn-outline-dark me-2" @onclick="() => SetQuote(quote.ESalesNumber, QStatus.Archive)"><i class="bi-archive-fill"></i> </button>
|
href="/companies/@quote.Company.CompanyId/quotes/@quote.ActivityId">@quote.ESalesNumber</a>
|
||||||
<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>
|
||||||
@if (!string.IsNullOrWhiteSpace(quote.OfficeNote))
|
@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">
|
<div class="col-sm-10">
|
||||||
<i class="bi-pencil"></i> @quote.OfficeNote
|
<i class="bi-pencil"></i> @quote.OfficeNote
|
||||||
</div>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,10 +70,13 @@ public partial class WorkDateComponent : IDisposable
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private async Task OnDateChanged(ChangeEventArgs e)
|
private async Task OnDateChanged(ChangeEventArgs e)
|
||||||
{
|
{
|
||||||
var val = DateTime.Parse(e.Value.ToString());
|
var x = DateTime.TryParse(e.Value.ToString(), out var val);
|
||||||
|
if (x)
|
||||||
|
{
|
||||||
await Prefs.SetWorkDate(val);
|
await Prefs.SetWorkDate(val);
|
||||||
await OnChangedCallback.InvokeAsync($"{val:yyyy-MM-dd}");
|
await OnChangedCallback.InvokeAsync($"{val:yyyy-MM-dd}");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ProfileService
|
/// ProfileService
|
||||||
|
|
|
@ -23,16 +23,16 @@ public partial class CrmQuotesListPage : IDisposable
|
||||||
private List<ReportItemView> Quotes { get; set; } = new();
|
private List<ReportItemView> Quotes { get; set; } = new();
|
||||||
private List<ReportItemView> _quotes { get; set; } = new();
|
private List<ReportItemView> _quotes { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
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()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
Interceptor.RegisterEvent();
|
Interceptor.RegisterEvent();
|
||||||
Interceptor.RegisterBeforeSendEvent();
|
Interceptor.RegisterBeforeSendEvent();
|
||||||
Quotes = await ActivityRepo.GetQuotes();
|
Quotes = await ActivityRepo.GetQuotes();
|
||||||
await Storage.SetItemAsync("quotes", Quotes);
|
await Storage.SetItemAsync("quotes", Quotes.OrderBy(x => x.Company.Name));
|
||||||
if (Quotes.Any())
|
if (Quotes.Any())
|
||||||
_quotes = Quotes.Where(x => x.QuoteStatusEnum is "Note" or "None").ToList();
|
await FilterQuotes(QFilter);
|
||||||
Working = false;
|
Working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,6 @@ public partial class CrmQuotesListPage : IDisposable
|
||||||
_quotes = QFilter switch
|
_quotes = QFilter switch
|
||||||
{
|
{
|
||||||
QStatus.None => Quotes.Where(x => x.QuoteStatusEnum is "None").ToList(),
|
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.Lose => Quotes.Where(x => x.QuoteStatusEnum is "Lose").ToList(),
|
||||||
QStatus.Archive => Quotes.Where(x => x.QuoteStatusEnum is "Archive").ToList(),
|
QStatus.Archive => Quotes.Where(x => x.QuoteStatusEnum is "Archive").ToList(),
|
||||||
QStatus.Note => Quotes.Where(x => x.QuoteStatusEnum is "Note").ToList(),
|
QStatus.Note => Quotes.Where(x => x.QuoteStatusEnum is "Note").ToList(),
|
||||||
|
@ -66,7 +65,7 @@ public partial class CrmQuotesListPage : IDisposable
|
||||||
while (!Quotes.Any())
|
while (!Quotes.Any())
|
||||||
await Task.Delay(1000);
|
await Task.Delay(1000);
|
||||||
|
|
||||||
await Storage.SetItemAsync("quotes", Quotes);
|
await Storage.SetItemAsync("quotes", Quotes.OrderBy(x => x.Company.Name));
|
||||||
|
|
||||||
await FilterQuotes(QFilter);
|
await FilterQuotes(QFilter);
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-item px-3">
|
<div class="nav-item px-3">
|
||||||
<NavLink class="nav-link ps-2" href="/open-quotes">
|
<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>
|
</NavLink>
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-item px-3">
|
<div class="nav-item px-3">
|
||||||
|
|
|
@ -11,10 +11,10 @@
|
||||||
<PackageReference Include="Blazored.LocalStorage" Version="4.3.0" />
|
<PackageReference Include="Blazored.LocalStorage" Version="4.3.0" />
|
||||||
<PackageReference Include="Blazored.Toast" Version="3.2.2" />
|
<PackageReference Include="Blazored.Toast" Version="3.2.2" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.2.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.11" />
|
<PackageReference Include="Microsoft.AspNetCore.Authorization" Version="6.0.12" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="6.0.11" />
|
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="6.0.12" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.11" />
|
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.12" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.11" PrivateAssets="all" />
|
<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.AspNetCore.WebUtilities" Version="2.2.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"appInfo": {
|
"appInfo": {
|
||||||
"name": "Wonky Client",
|
"name": "Wonky Client",
|
||||||
"version": "0.85.7",
|
|
||||||
"rc": true,
|
"rc": true,
|
||||||
"sandBox": false,
|
"sandBox": false,
|
||||||
"image": "grumpy-coder.png"
|
"image": "grumpy-coder.png"
|
||||||
},
|
},
|
||||||
"apiConfig": {
|
"apiConfig": {
|
||||||
|
"baseUrl": "https://dev.innotec.dk",
|
||||||
"catalog": "api/v2/catalog",
|
"catalog": "api/v2/catalog",
|
||||||
"crmCustomers": "api/v2/crm/companies",
|
"crmCustomers": "api/v2/crm/companies",
|
||||||
"crmInventoryExt": "history/inventory",
|
"crmInventoryExt": "history/inventory",
|
||||||
|
|
Loading…
Reference in a new issue