|
|
|
|
@ -2,306 +2,304 @@
|
|
|
|
|
@using Gremlin_BlazorServer.Services
|
|
|
|
|
@using Gremlin_BlazorServer.Data.EntityClasses
|
|
|
|
|
@using System.Globalization
|
|
|
|
|
@using System.Security.Claims;
|
|
|
|
|
@using System.Text;
|
|
|
|
|
|
|
|
|
|
@inject GenericController GenericController
|
|
|
|
|
@inject NavigationManager NavigationManager
|
|
|
|
|
@inject QuoteHandling QuoteHandling
|
|
|
|
|
@inject HostingService HostingService
|
|
|
|
|
@inject IJSRuntime JsRuntime
|
|
|
|
|
@inject ILoadingIndicatorService ApplicationLoadingIndicatorService
|
|
|
|
|
@* @inject ILoadingIndicatorService ApplicationLoadingIndicatorService *@
|
|
|
|
|
|
|
|
|
|
<AuthorizeView>
|
|
|
|
|
<Authorized>
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Recipient</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<DataGrid TItem="Contact"
|
|
|
|
|
Data="@contacts"
|
|
|
|
|
SelectedRow="@selectedContact"
|
|
|
|
|
SelectedRowChanged="@OnSelectedContactChanged"
|
|
|
|
|
Bordered Hoverable Filterable Striped ShowPager Responsive Sortable>
|
|
|
|
|
|
|
|
|
|
<DataGridCommandColumn/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.ContactId)" Caption="ContactId" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.AccountId)" Caption="AccountId" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.FirstName)" Caption="FirstName" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.LastName)" Caption="LastName" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.Gender)" Caption="Gender" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.EMail)" Caption="EMail" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.PhoneNumber)" Caption="PhoneNumber" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.SapContactNumber)" Caption="SAPContactNumber" Sortable Filterable/>
|
|
|
|
|
</DataGrid>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
|
|
|
|
|
@if (quote is not null)
|
|
|
|
|
{
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
<Authorized>
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Quote Details</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<Row>
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is4">
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotsname</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Description" TextChanged="@OnDescriptionChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotsnummer</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.QuotationNumber" TextChanged="@OnQuotationNumberChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotspfad</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.Path"/>"
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Gewährleistung (Monate)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Warranty.ToString()" TextChanged="@OnWarrantyChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotsgültigkeit (Tage)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.ValidFor.ToString()" TextChanged="@OnValidForChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Mehrwertsteuer (%)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Vat.ToString(CultureInfo.CurrentCulture)" TextChanged="@OnVATChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Versandkosten (%)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Freight.ToString(CultureInfo.CurrentCulture)"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
</Column>
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Recipient</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<DataGrid TItem="Contact"
|
|
|
|
|
Data="@contacts"
|
|
|
|
|
SelectedRow="@selectedContact"
|
|
|
|
|
SelectedRowChanged="@SelectedContactChanged"
|
|
|
|
|
Bordered Hoverable Filterable Striped ShowPager Responsive Sortable>
|
|
|
|
|
|
|
|
|
|
@if (quote?.Recipient?.Account is not null)
|
|
|
|
|
{
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is3">
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">FirstName</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.FirstName</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">LastName</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.LastName</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">AccountName</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.AccountName</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Street</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.Street</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Zip</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.Zip.ToString()</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">City</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.City</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
</Column>
|
|
|
|
|
}
|
|
|
|
|
<DataGridCommandColumn/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.ContactId)" Caption="ContactId" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.AccountId)" Caption="AccountId" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.FirstName)" Caption="FirstName" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.LastName)" Caption="LastName" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.Gender)" Caption="Gender" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.EMail)" Caption="EMail" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.PhoneNumber)" Caption="PhoneNumber" Sortable Filterable/>
|
|
|
|
|
<DataGridColumn Field="@nameof(Contact.SapContactNumber)" Caption="SAPContactNumber" Sortable Filterable/>
|
|
|
|
|
</DataGrid>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is2">
|
|
|
|
|
<Check TValue="bool" Checked="@quote.IsPriceInformation" CheckedChanged="@OnIsPriceInformationChanged">Preisinformation</Check>
|
|
|
|
|
<Check TValue="bool" Checked="@quote.ShowBrutto" CheckedChanged="@OnShowBruttoChanged">Bruttopreise anzeigen</Check>
|
|
|
|
|
<Check TValue="bool" Checked="@quote.ShowSinglePrices" CheckedChanged="@OnShowSinglePricesChanged">Einzelpreise ausweisen</Check>
|
|
|
|
|
<Check TValue="bool" Checked="@quote.ShowDiscounts" CheckedChanged="@OnShowDiscountsChanged">Discounts ausweisen</Check>
|
|
|
|
|
</Column>
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is3">
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Listenpreis netto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalListprice.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Summe netto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalNet.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Versandkosten</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalFreightOnly.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Gesamtsumme netto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalFreight.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Mehrwertsteuer</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalVat.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Gesamtsumme brutto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalGross.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
</Column>
|
|
|
|
|
</Row>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Quote Details</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<Row>
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is4">
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotsname</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Description" TextChanged="@OnDescriptionChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotsnummer</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.QuotationNumber" TextChanged="@OnQuotationNumberChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotspfad</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.Path"/>"
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Gewährleistung (Monate)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Warranty.ToString()" TextChanged="@OnWarrantyChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Angebotsgültigkeit (Tage)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.ValidFor.ToString()" TextChanged="@OnValidForChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Mehrwertsteuer (%)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Vat.ToString(CultureInfo.CurrentCulture)" TextChanged="@OnVATChanged"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Versandkosten (%)</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit Text="@quote.Freight.ToString(CultureInfo.CurrentCulture)"/>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
</Column>
|
|
|
|
|
|
|
|
|
|
@if (quote?.LineItems is not null) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">LineItems</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<DataGrid TItem="LineItem"
|
|
|
|
|
Data="@quote.LineItems"
|
|
|
|
|
SelectedRow="@selectedLineItem"
|
|
|
|
|
SelectedRowChanged="@OnSelectedLineItemChanged"
|
|
|
|
|
Bordered Hoverable Striped ShowPager Responsive>
|
|
|
|
|
<DataGridCommandColumn/>
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.Position)" Caption="Position" />
|
|
|
|
|
<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.SapShortDescription)" Caption="SapShortDescription" />
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.ListPrice)" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Caption="ListPrice" />
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.TotalDiscount)" DisplayFormat="{0:n2}%" Caption="TotalDiscount" />
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.Total)" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Caption="Total"/>
|
|
|
|
|
</DataGrid>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
|
|
|
|
|
@if (selectedLineItem?.Product?.CustomDescription is not null) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">CustomDescriptions</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
@if (quote?.Recipient?.Account is not null) {
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is3">
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">ProductNumber</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.ProductNumber</FieldBody>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">FirstName</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.FirstName</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">OptionNumber</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.OptionNumber</FieldBody>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">LastName</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.LastName</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">Heading</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.Heading</FieldBody>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">AccountName</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.AccountName</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">CoverletterText</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.CoverletterText</FieldBody>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Street</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.Street</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">DescriptionText</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.DescriptionText</FieldBody>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Zip</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.Zip.ToString()</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field >
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">City</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">@quote.Recipient.Account.City</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
</Column>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@if (quote is {LineItems: null }) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is2">
|
|
|
|
|
<Check TValue="bool" Checked="@quote.IsPriceInformation" CheckedChanged="@OnIsPriceInformationChanged">Preisinformation</Check>
|
|
|
|
|
<Check TValue="bool" Checked="@quote.ShowBrutto" CheckedChanged="@OnShowBruttoChanged">Bruttopreise anzeigen</Check>
|
|
|
|
|
<Check TValue="bool" Checked="@quote.ShowSinglePrices" CheckedChanged="@OnShowSinglePricesChanged">Einzelpreise ausweisen</Check>
|
|
|
|
|
<Check TValue="bool" Checked="@quote.ShowDiscounts" CheckedChanged="@OnShowDiscountsChanged">Discounts ausweisen</Check>
|
|
|
|
|
</Column>
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Upload PriceSurfer Quote </Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel>Please select PriceSurfer quote as TSV</FieldLabel>
|
|
|
|
|
<FileEdit Filter=".tsv" Changed="@SelectQuoteOnChanged" Written="@SelectQuoteOnWritten" Progressed="@SelectQuoteOnProgressed"/>
|
|
|
|
|
</Field>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
<Column ColumnSize="ColumnSize.Is3">
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Listenpreis netto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalListprice.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Summe netto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalNet.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Versandkosten</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalFreightOnly.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Gesamtsumme netto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalFreight.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Mehrwertsteuer</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalVat.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is4">Gesamtsumme brutto</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is6">
|
|
|
|
|
<TextEdit ReadOnly Text="@quote.TotalGross.ToString("C", CultureInfo.CurrentCulture)"></TextEdit>
|
|
|
|
|
</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
</Column>
|
|
|
|
|
</Row>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Create Quote</Heading>
|
|
|
|
|
@if (quote?.LineItems is not null) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">LineItems</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<DataGrid TItem="LineItem"
|
|
|
|
|
Data="@quote.LineItems"
|
|
|
|
|
SelectedRow="@selectedLineItem"
|
|
|
|
|
SelectedRowChanged="@OnSelectedLineItemChanged"
|
|
|
|
|
Bordered Hoverable Striped ShowPager Responsive>
|
|
|
|
|
<DataGridCommandColumn/>
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.Position)" Caption="Position"/>
|
|
|
|
|
<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.SapShortDescription)" Caption="SapShortDescription"/>
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.ListPrice)" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Caption="ListPrice"/>
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.TotalDiscount)" DisplayFormat="{0:n2}%" Caption="TotalDiscount"/>
|
|
|
|
|
<DataGridColumn Field="@nameof(LineItem.Total)" DisplayFormat="{0:C}" DisplayFormatProvider=cultureInfo Caption="Total"/>
|
|
|
|
|
</DataGrid>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
|
|
|
|
|
@if (selectedLineItem?.Product?.CustomDescription is not null) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">CustomDescriptions</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<Button Color="Color.Primary" Disabled="@lineItemsNotReady" Clicked="@OnCreateTex" Loading="@isCreatingTex">Create Tex from Quote</Button>
|
|
|
|
|
<Button Color="Color.Secondary" Disabled="@texNotReady" Clicked="@OnCreatePdf" Loading="@isCreatingPdf">Create Pdf from Tex</Button>
|
|
|
|
|
<Button Color="Color.Secondary" Disabled="@pdfNotReady" Clicked="@OnOpenPdfApp">Open Pdf with App</Button>
|
|
|
|
|
<Button Color="Color.Secondary" Disabled="@pdfNotReady" Clicked="@OnOpenPdfNewTab">Open Pdf in Tab</Button>
|
|
|
|
|
<Button Color="Color.Success" Disabled="@pdfNotReady" Clicked="@OnSave">Save</Button>
|
|
|
|
|
<Button Color="Color.Danger" Clicked="@OnCancel">Cancel</Button>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">ProductNumber</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.ProductNumber</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">OptionNumber</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.OptionNumber</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">Heading</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.Heading</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">CoverletterText</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.CoverletterText</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel ColumnSize="ColumnSize.Is1">DescriptionText</FieldLabel>
|
|
|
|
|
<FieldBody ColumnSize="ColumnSize.Is11">@selectedLineItem.Product.CustomDescription.DescriptionText</FieldBody>
|
|
|
|
|
</Field>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@if (!pdfNotReady && url != null && debug) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
@if (quote is {LineItems: null }) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">PDF</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<iframe src="/quotes/@url" style="width:50%;height:600px;"></iframe>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Load PriceSurfer quote</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<Button Color="Color.Primary" Clicked="@GetClipboardTextAsync">Paste from Clipboard</Button>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<Field>
|
|
|
|
|
<FieldLabel>Please select PriceSurfer quote as TSV</FieldLabel>
|
|
|
|
|
<FileEdit Filter=".tsv" Changed="@SelectQuoteOnChanged" Written="@SelectQuoteOnWritten" Progressed="@SelectQuoteOnProgressed"/>
|
|
|
|
|
</Field>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@if (quote != null && quote.Tex != null && debug) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Tex</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<MemoEdit ReadOnly Size="Size.Small" Autosize @bind-Text="@quote.Tex" />
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Create Quote</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<Button Color="Color.Primary" Disabled="@lineItemsNotReady" Clicked="@OnCreateTex" Loading="@isCreatingTex">Create Tex from Quote</Button>
|
|
|
|
|
<Button Color="Color.Secondary" Disabled="@texNotReady" Clicked="@OnCreatePdf" Loading="@isCreatingPdf">Create Pdf from Tex</Button>
|
|
|
|
|
<Button Color="Color.Secondary" Disabled="@pdfNotReady" Clicked="@OnOpenPdfApp">Open Pdf with App</Button>
|
|
|
|
|
<Button Color="Color.Secondary" Disabled="@pdfNotReady" Clicked="@OnOpenPdfNewTab">Open Pdf in Tab</Button>
|
|
|
|
|
<Button Color="Color.Success" Disabled="@pdfNotReady" Clicked="@OnSave">Save</Button>
|
|
|
|
|
<Button Color="Color.Danger" Clicked="@OnCancel">Cancel</Button>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
|
|
|
|
|
</Authorized>
|
|
|
|
|
@if (!pdfNotReady && url != null && debug) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<NotAuthorized>
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
<Heading Size="HeadingSize.Is5">PDF</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<iframe src="/quotes/@url" style="width:50%;height:600px;"></iframe>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is3">Authentication Failure!</Heading>
|
|
|
|
|
<Paragraph>You're not signed in. Please click on the upper right to either register or log in.</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
</NotAuthorized>
|
|
|
|
|
</AuthorizeView>
|
|
|
|
|
@if (quote != null && quote.Tex != null && debug) {
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is5">Tex</Heading>
|
|
|
|
|
<Paragraph>
|
|
|
|
|
<MemoEdit ReadOnly Size="Size.Small" Autosize @bind-Text="@quote.Tex"/>
|
|
|
|
|
</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</Authorized>
|
|
|
|
|
|
|
|
|
|
<NotAuthorized>
|
|
|
|
|
<Div Margin="Margin.Is3"
|
|
|
|
|
Border="Border.Dark.OnAll"
|
|
|
|
|
Padding="Padding.Is3"
|
|
|
|
|
style="box-shadow: 10px 10px #343A40">
|
|
|
|
|
|
|
|
|
|
<Heading Size="HeadingSize.Is3">Authentication Failure!</Heading>
|
|
|
|
|
<Paragraph>You're not signed in. Please click on the upper right to either register or log in.</Paragraph>
|
|
|
|
|
</Div>
|
|
|
|
|
</NotAuthorized>
|
|
|
|
|
</AuthorizeView>
|