87 lines
4.3 KiB
Plaintext
87 lines
4.3 KiB
Plaintext
@page "/Contacts"
|
|
|
|
@using Gremlin_BlazorServer.Data.EntityClasses;
|
|
@using Gremlin_BlazorServer.Services;
|
|
@using System.Globalization;
|
|
|
|
@inject GenericController genericController
|
|
|
|
<h1>Contacts</h1>
|
|
<AuthorizeView>
|
|
<Authorized>
|
|
<DataGrid TItem="Contact" Data="@contacts" SelectedRow="@selectedContact" SelectedRowChanged="@OnSelectedContactChanged" Editable ShowPager Bordered Hoverable Sortable Filterable Striped Responsive>
|
|
<DataGridCommandColumn />
|
|
<DataGridColumn Field="@nameof(Contact.ContactId)" Caption="ContactId" Filterable Sortable Editable/>
|
|
<DataGridColumn Field="@nameof(Contact.AccountId)" Caption="AccountId" Filterable Sortable Editable/>
|
|
<DataGridColumn Field="@nameof(Contact.LastName)" Caption="LastName" Filterable Sortable Editable/>
|
|
<DataGridColumn Field="@nameof(Contact.FirstName)" Caption="FirstName" Filterable Sortable Editable/>
|
|
<DataGridColumn Field="@nameof(Contact.Gender)" Caption="Gender" Filterable Sortable Editable/>
|
|
<DataGridColumn Field="@nameof(Contact.EMail)" Caption="EMail" Filterable Sortable Editable/>
|
|
<DataGridColumn Field="@nameof(Contact.SapContactNumber)" Caption="SAPContactNumber" Filterable Sortable Editable/>
|
|
</DataGrid>
|
|
|
|
@if (selectedContact != null)
|
|
{
|
|
<h2>Quotes for SelectedContact: @selectedContact.FirstName @selectedContact.LastName</h2>
|
|
<DataGrid TItem=" Quote" Data="@selectedContact.Quotes" SelectedRow="@selectedQuote" SelectedRowChanged="@OnSelectedQuoteChanged" Editable 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>
|
|
}
|
|
</Authorized>
|
|
<NotAuthorized>
|
|
<h3>Authentication Failure!</h3>
|
|
<p>You're not signed in. Please click on the upper right to either register or log in.</p>
|
|
</NotAuthorized>
|
|
</AuthorizeView>
|
|
|
|
@if (selectedQuote != null)
|
|
{
|
|
<h2>LineItems in SelectedQuote: @selectedQuote.QuotationNumber</h2>
|
|
<DataGrid TItem="LineItem" Data="@selectedQuote.LineItems" Editable ShowPager Bordered Hoverable Sortable Filterable Striped Responsive>
|
|
<DataGridCommandColumn />
|
|
<DataGridColumn Field="@nameof(LineItem.Amount)" Caption="Amount" />
|
|
<DataGridColumn Field="@nameof(LineItem.ProductNumber)" Caption="ProductNumber" />
|
|
<DataGridColumn Field="@nameof(LineItem.OptionNumber)" Caption="OptionNumber" />
|
|
<DataGridColumn Field="@nameof(LineItem.ListPrice)" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Caption="ListPrice" />
|
|
<DataGridColumn Field="@nameof(LineItem.TotalDiscount)" Caption="TotalDiscount" DisplayFormat="{0.00%}." DisplayFormatProvider=cultureInfo />
|
|
<DataGridColumn Field="@nameof(LineItem.Total)" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Caption="Total" />
|
|
</DataGrid>
|
|
}
|
|
@code {
|
|
private IList<Contact>? contacts;
|
|
private Contact? selectedContact;
|
|
private Quote? selectedQuote;
|
|
private IList<Quote>? quotesOfSelectedContact;
|
|
private IList<LineItem>? lineItemsInSelectedQuote;
|
|
private readonly CultureInfo cultureInfo = new("de-DE");
|
|
|
|
protected override Task OnInitializedAsync()
|
|
{
|
|
contacts = genericController.GetAll<Contact>();
|
|
return base.OnInitializedAsync();
|
|
}
|
|
|
|
private Task OnSelectedContactChanged(Contact sC)
|
|
{
|
|
selectedContact = null;
|
|
quotesOfSelectedContact = genericController.GetAll<Quote>(q => q.Recipient == sC);
|
|
selectedContact = sC;
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
private Task OnSelectedQuoteChanged(Quote sQ)
|
|
{
|
|
selectedQuote = null;
|
|
lineItemsInSelectedQuote = genericController.GetAll<LineItem>(l => l.Quote == sQ);
|
|
selectedQuote = sQ;
|
|
return Task.CompletedTask;
|
|
}
|
|
} |