107 lines
7.1 KiB
Plaintext
107 lines
7.1 KiB
Plaintext
@page "/Quotes/Index"
|
|
|
|
@using Gremlin_BlazorServer.Data.EntityClasses;
|
|
@using Gremlin_BlazorServer.Services;
|
|
@using System.Globalization;
|
|
|
|
@inject QuoteService QuoteService
|
|
|
|
<Divider DividerType="DividerType.TextContent" Text="Quotes"/>
|
|
<NavLink class="nav-link" href="Quotes/Add">
|
|
<span class="oi oi-plus" aria-hidden="true">Create New Quote</span>
|
|
</NavLink>
|
|
|
|
<DataGrid TItem="Quote" Data="@quotes" SelectedRow="@selectedQuote" SelectedRowChanged="@OnSelectedQuoteChanged" ShowPager Bordered Hoverable Sortable Filterable Striped Responsive>
|
|
<DataGridCommandColumn />
|
|
<DataGridColumn Field="@nameof(Quote.QuoteId)" Caption="#" Filterable Sortable/>
|
|
<DataGridColumn Field="@nameof(Quote.QuotationNumber)" Caption="QuotationNumber" Filterable Sortable/>
|
|
<DataGridColumn Field="@nameof(Quote.QuotationDate)" Caption="Date" Filterable Sortable/>
|
|
<DataGridColumn Field="@nameof(Quote.ValidUntil)" Caption="ValidUntil" Filterable Sortable/>
|
|
<DataGridColumn Field="@nameof(Quote.TotalNet)" Caption="TotalNet" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Filterable Sortable/>
|
|
<DataGridColumn Field="@nameof(Quote.TotalGross)" Caption="TotalGross" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Filterable Sortable/>
|
|
<DataGridColumn Field="@nameof(Quote.QuoteContains3Pp)" Caption="3PP" Filterable Sortable/>
|
|
<DataGridColumn Field="@nameof(Quote.QuoteContainsRb)" Caption="RB" Filterable Sortable/>
|
|
</DataGrid>
|
|
|
|
<Divider DividerType="DividerType.TextContent" Text="Quote Details"/>
|
|
|
|
<Row>
|
|
<Column ColumnSize="ColumnSize.Is4">
|
|
<Fields>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Angebotsname:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit Text="@selectedQuote.Description"/></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Angebotsnummer:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit Text="@selectedQuote.QuotationNumber"/></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Angebotspfad:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6">@selectedQuote.Path</FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Gewährleistung (Monate):</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6">@selectedQuote.Warranty</FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Angebotsgültigkeit (Tage):</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit Text="@selectedQuote.ValidFor.ToString()"/></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Mehrwertsteuer (%):</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit Text="@selectedQuote.Vat.ToString(CultureInfo.CurrentCulture)"/></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Versandkosten (%):</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit Text="@selectedQuote.Freight.ToString(CultureInfo.CurrentCulture)" /></FieldBody></Field>
|
|
</Fields>
|
|
</Column>
|
|
|
|
<Column ColumnSize="ColumnSize.Is3">
|
|
<Fields>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Empfänger Nachname:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit Text="@selectedQuote.Recipient.LastName"/></FieldBody></Field>
|
|
</Fields>
|
|
</Column>
|
|
|
|
<Column ColumnSize="ColumnSize.Is2">
|
|
<Check TValue="bool" ReadOnly Checked="@selectedQuote.IsPriceInformation">Preisinformation</Check>
|
|
<Check TValue="bool" ReadOnly Checked="@selectedQuote.ShowBrutto">Bruttopreise anzeigen</Check>
|
|
<Check TValue="bool" ReadOnly Checked="@selectedQuote.ShowSinglePrices">Einzelpreise ausweisen</Check>
|
|
<Check TValue="bool" ReadOnly Checked="@selectedQuote.ShowDiscounts">Discounts ausweisen</Check>
|
|
</Column>
|
|
|
|
<Column ColumnSize="ColumnSize.Is3">
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Listenpreis netto:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit ReadOnly Text="@selectedQuote.TotalListprice.ToString("C", CultureInfo.CurrentCulture)"></TextEdit></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Summe netto:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit ReadOnly Text="@selectedQuote.TotalNet.ToString("C", CultureInfo.CurrentCulture)"></TextEdit></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Versandkosten:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit ReadOnly Text="@selectedQuote.TotalFreightOnly.ToString("C", CultureInfo.CurrentCulture)"></TextEdit></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Gesamtsumme netto:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit ReadOnly Text="@selectedQuote.TotalFreight.ToString("C", CultureInfo.CurrentCulture)"></TextEdit></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Mehrwertsteuer:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit ReadOnly Text="@selectedQuote.TotalVat.ToString("C", CultureInfo.CurrentCulture)"></TextEdit></FieldBody></Field>
|
|
<Field Horizontal><FieldLabel ColumnSize="ColumnSize.Is4">Gesamtsumme brutto:</FieldLabel><FieldBody ColumnSize="ColumnSize.Is6"><TextEdit ReadOnly Text="@selectedQuote.TotalGross.ToString("C", CultureInfo.CurrentCulture)"></TextEdit></FieldBody></Field>
|
|
</Column>
|
|
|
|
</Row>
|
|
|
|
<Divider DividerType="DividerType.TextContent" Text="Line Items"/>
|
|
<DataGrid
|
|
TItem="LineItem"
|
|
Data="@lineItemsInSelectedQuote"
|
|
Bordered
|
|
Hoverable
|
|
Sortable
|
|
Striped
|
|
Responsive>
|
|
<DataGridCommandColumn />
|
|
<DataGridColumn Field="@nameof(LineItem.Position)" Caption="#"/>
|
|
<DataGridColumn Field="@nameof(LineItem.Amount)" Caption="Amount" Editable />
|
|
<DataGridColumn Field="@nameof(LineItem.ProductNumber)" Caption="ProductNumber" Editable />
|
|
<DataGridColumn Field="@nameof(LineItem.OptionNumber)" Caption="OptionNumber" Editable />
|
|
<DataGridColumn Field="@nameof(LineItem.ProductLine)" Caption="ProductLine" Editable />
|
|
<DataGridColumn Field="@nameof(LineItem.ListPrice)" Caption="ListPrice" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Editable />
|
|
<DataGridColumn Field="@nameof(LineItem.TotalDiscount)" Caption="TotalDiscount" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Editable />
|
|
<DataGridColumn Field="@nameof(LineItem.Total)" Caption="Total" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Editable />
|
|
</DataGrid>
|
|
|
|
@code {
|
|
public string SearchQuote = "";
|
|
readonly CultureInfo cultureInfo = new("de-DE");
|
|
|
|
Quote selectedQuote = new();
|
|
List<LineItem> lineItemsInSelectedQuote = new();
|
|
|
|
List<Quote> quotes = new();
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
quotes = await Task.Run(() => QuoteService.GetAllQuotesAsync());
|
|
await OnSelectedQuoteChanged(quotes.LastOrDefault() ?? new());
|
|
|
|
await base.OnInitializedAsync();
|
|
}
|
|
|
|
private async Task OnSelectedQuoteChanged(Quote _selectedQuote)
|
|
{
|
|
lineItemsInSelectedQuote = await QuoteService.GetLineItemsAsync(_selectedQuote);
|
|
this.selectedQuote = _selectedQuote;
|
|
}
|
|
} |