wip - transfer draft to company - by select or create - validate vat number
This commit is contained in:
parent
b7adab357c
commit
5043afbabd
7 changed files with 15 additions and 69 deletions
|
@ -31,20 +31,18 @@
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Status</th>
|
<th scope="row">Status</th>
|
||||||
<td colspan="2"><strong>@state.State</strong></td>
|
<td><strong>@state.State</strong></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Opdateret</th>
|
<th scope="row">Opdateret</th>
|
||||||
<td colspan="2">@state.LastUpdate</td>
|
<td>@state.LastUpdate</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Periode</th>
|
<th scope="row">Periode Start</th>
|
||||||
<th scope="row">Start</th>
|
|
||||||
<td>@state.TimeFrame.StartDate</td>
|
<td>@state.TimeFrame.StartDate</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">Periode</th>
|
<th scope="row">Periode Slut</th>
|
||||||
<th scope="row">Slut</th>
|
|
||||||
<td>@state.TimeFrame.EndDate</td>
|
<td>@state.TimeFrame.EndDate</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
@* display product filter options *@
|
@* display product filter options *@
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<ItemSearchColumn OnSearchColumnChanged="SearchColumnChanged"></ItemSearchColumn>
|
<ItemSearchColumn OnSearchColumnChanged="ProductColumnChanged"></ItemSearchColumn>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<SearchPhrase OnSearchPhraseChanged="SearchPhraseChanged"></SearchPhrase>
|
<SearchPhrase OnSearchPhraseChanged="ProductSearchChanged"></SearchPhrase>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<ItemGroupFilter OnGroupFilterChanged="GroupFilterChanged"></ItemGroupFilter>
|
<ItemGroupFilter OnGroupFilterChanged="ProductGroupChanged"></ItemGroupFilter>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ else
|
||||||
@if (DraftStateProvider != null && DraftStateProvider.Draft.Items.Count > 0)
|
@if (DraftStateProvider != null && DraftStateProvider.Draft.Items.Count > 0)
|
||||||
{
|
{
|
||||||
<div class="card mt-3 mb-3">
|
<div class="card mt-3 mb-3">
|
||||||
<div class="card-header bg-success text-white fw-bold">Ordrekladde <span class="draft-expires-msg">(udløber efter @(DraftStateProvider.Draft.TimeToLiveInSeconds)s inaktivitet)</span></div>
|
<div class="card-header bg-success text-white fw-bold">Ordrekladde <span class="draft-expires-msg">(Kladde udløber efter inaktivity i @(DraftStateProvider.Draft.TimeToLiveInSeconds / 60)m)</span></div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<table class="table table-hover table-striped justify-content-center">
|
<table class="table table-hover table-striped justify-content-center">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -141,7 +141,7 @@ else
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<button class="btn btn-danger" @onclick="DeleteDraft">Slet kladde</button>
|
<button class="btn btn-danger" @onclick="@DeleteDraft">Slet kladde</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<a class="btn btn-success" href="/Companies">Overfør</a>
|
<a class="btn btn-success" href="/Companies">Overfør</a>
|
||||||
|
|
|
@ -72,24 +72,23 @@ public partial class DraftDocument : IDisposable
|
||||||
{
|
{
|
||||||
// remove item
|
// remove item
|
||||||
DraftStateProvider.Draft.Items.Remove(item);
|
DraftStateProvider.Draft.Items.Remove(item);
|
||||||
|
|
||||||
// save the remaining draft
|
// save the remaining draft
|
||||||
await DraftStateProvider.SaveChangesAsync();
|
await DraftStateProvider.SaveChangesAsync();
|
||||||
}
|
}
|
||||||
private async Task GroupFilterChanged(string groupFilter)
|
private async Task ProductGroupChanged(string groupFilter)
|
||||||
{
|
{
|
||||||
_paging.PageNumber = 1;
|
_paging.PageNumber = 1;
|
||||||
_paging.SelectGroup = groupFilter;
|
_paging.SelectGroup = groupFilter;
|
||||||
await GetSalesItems();
|
await GetSalesItems();
|
||||||
}
|
}
|
||||||
private async Task SearchColumnChanged(string columnName)
|
private async Task ProductColumnChanged(string columnName)
|
||||||
{
|
{
|
||||||
_paging.PageNumber = 1;
|
_paging.PageNumber = 1;
|
||||||
_paging.SearchTerm = "";
|
_paging.SearchTerm = "";
|
||||||
_paging.SearchColumn = columnName;
|
_paging.SearchColumn = columnName;
|
||||||
await GetSalesItems();
|
await GetSalesItems();
|
||||||
}
|
}
|
||||||
private async Task SearchPhraseChanged(string searchTerm)
|
private async Task ProductSearchChanged(string searchTerm)
|
||||||
{
|
{
|
||||||
_paging.PageNumber = 1;
|
_paging.PageNumber = 1;
|
||||||
_paging.SearchTerm = searchTerm;
|
_paging.SearchTerm = searchTerm;
|
||||||
|
|
|
@ -99,28 +99,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr/>
|
|
||||||
<div class="row mb-2">
|
|
||||||
<div class="col">
|
|
||||||
<SalesItemSearchField OnSearchFieldChanged="SearchFieldChange"></SalesItemSearchField>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<SearchPhrase OnSearchPhraseChanged="SearchTermChanged"></SearchPhrase>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<SalesItemSort OnSortFieldChanged="OrderByChanged"></SalesItemSort>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<SalesItemTable SalesItems="SalesItemList"></SalesItemTable>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<hr/>
|
|
||||||
<PurchaseOrderLinesTable Lines="Lines"></PurchaseOrderLinesTable>
|
|
||||||
|
|
||||||
<div class="row mb-2">
|
<div class="row mb-2">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<button type="submit" class="btn btn-success" disabled="@_poFormInvalid">Send tilbud</button>
|
<button type="submit" class="btn btn-success" disabled="@_poFormInvalid">Send tilbud</button>
|
||||||
|
|
|
@ -84,7 +84,6 @@ public partial class PurchaseOrderCreate : IDisposable
|
||||||
_purchaseOrder.DlvZipCode = _companyDto.ZipCode;
|
_purchaseOrder.DlvZipCode = _companyDto.ZipCode;
|
||||||
_purchaseOrder.DlvCity = _companyDto.City;
|
_purchaseOrder.DlvCity = _companyDto.City;
|
||||||
|
|
||||||
await GetSalesItems();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -94,36 +93,6 @@ public partial class PurchaseOrderCreate : IDisposable
|
||||||
|
|
||||||
ToastService.ShowSuccess($"Aktivitet oprettet.");
|
ToastService.ShowSuccess($"Aktivitet oprettet.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SearchFieldChange(string? searchField)
|
|
||||||
{
|
|
||||||
_paging.PageNumber = 1;
|
|
||||||
_paging.SearchColumn = searchField;
|
|
||||||
await GetSalesItems();
|
|
||||||
}
|
|
||||||
private async Task SearchTermChanged(string? searchTerm)
|
|
||||||
{
|
|
||||||
_paging.PageNumber = 1;
|
|
||||||
_paging.SearchTerm = searchTerm;
|
|
||||||
await GetSalesItems();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task OrderByChanged(string? orderBy)
|
|
||||||
{
|
|
||||||
_paging.OrderBy = orderBy;
|
|
||||||
await GetSalesItems();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task GetSalesItems()
|
|
||||||
{
|
|
||||||
if (SalesItemRepo != null)
|
|
||||||
{
|
|
||||||
var pagingResponse = await SalesItemRepo.GetSalesItemsPaged(_paging);
|
|
||||||
SalesItemList = pagingResponse.Items;
|
|
||||||
MetaData = pagingResponse.MetaData;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
||||||
{
|
{
|
||||||
_poFormInvalid = !_editContext.Validate();
|
_poFormInvalid = !_editContext.Validate();
|
||||||
|
|
|
@ -56,6 +56,7 @@ public partial class DraftStateProvider
|
||||||
|
|
||||||
public async Task DeleteDraftAsync()
|
public async Task DeleteDraftAsync()
|
||||||
{
|
{
|
||||||
await LocalStorageService.RemoveItemAsync(Account);
|
Draft.Items.Clear();
|
||||||
|
await LocalStorageService.SetItemAsync(Account, Draft);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -24,7 +24,6 @@ public class DraftItem
|
||||||
public class Draft
|
public class Draft
|
||||||
{
|
{
|
||||||
public List<DraftItem> Items { get; set; } = new List<DraftItem>();
|
public List<DraftItem> Items { get; set; } = new List<DraftItem>();
|
||||||
|
|
||||||
public decimal Total
|
public decimal Total
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -33,5 +32,5 @@ public class Draft
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public DateTime LastAccessed { get; set; }
|
public DateTime LastAccessed { get; set; }
|
||||||
public int TimeToLiveInSeconds { get; set; } = 300; // default
|
public int TimeToLiveInSeconds { get; set; } = 3600; // default
|
||||||
}
|
}
|
Loading…
Reference in a new issue