Hi
This so private question so no one help ?
decimal taxRate;
decimal oldPriceBase = _taxService.GetProductPrice(product, product.OldPrice, out taxRate);
decimal finalPriceWithoutDiscountBase = _taxService.GetProductPrice(product, _priceCalculationService.GetFinalPrice(product, _workContext.CurrentCustomer, includeDiscounts: false), out taxRate);
decimal finalPriceWithDiscountBase = _taxService.GetProductPrice(product, _priceCalculationService.GetFinalPrice(product, _workContext.CurrentCustomer, includeDiscounts: true), out taxRate);
decimal oldPrice = _currencyService.ConvertFromPrimaryStoreCurrency(oldPriceBase, _workContext.WorkingCurrency);
decimal finalPriceWithoutDiscount = _currencyService.ConvertFromPrimaryStoreCurrency(finalPriceWithoutDiscountBase, _workContext.WorkingCurrency);
decimal finalPriceWithDiscount = _currencyService.ConvertFromPrimaryStoreCurrency(finalPriceWithDiscountBase, _workContext.WorkingCurrency);
if (finalPriceWithoutDiscountBase != oldPriceBase && oldPriceBase > decimal.Zero)
model.ProductPrice.OldPrice = _priceFormatter.FormatPrice(oldPrice);
model.ProductPrice.Price = _priceFormatter.FormatPrice(finalPriceWithoutDiscount);
if (finalPriceWithoutDiscountBase != finalPriceWithDiscountBase)
model.ProductPrice.PriceWithDiscount = _priceFormatter.FormatPrice(finalPriceWithDiscount);
model.ProductPrice.PriceValue = finalPriceWithoutDiscount;
model.ProductPrice.PriceWithDiscountValue = finalPriceWithDiscount;
\NopCommerce\Presentation\Nop.Web\Views\Product\_ProductPrice.cshtml
@*render price*@
@Html.Raw(Model.Price)
@{
Regex ex = new Regex(@"\p{Sc}");
string currencySymbol = ex.Match(Model.Price).Value;
ex = new Regex(@"\d.*");
decimal priceIncVat = Convert.ToDecimal(ex.Match(Model.Price).Value);
@* Assuming VAT rate of 20% in the UK *@
decimal priceExcVat = (priceIncVat / ((decimal)20 / 100 + 1));
}
@Html.Raw(Model.Price +" Inc VAT<br>"+
currencySymbol + priceExcVat.ToString("N", new CultureInfo("en-gb")) + " Exc VAT")
....\Nop.Web\Views\Product\_ProductPriceWithVat.cshtml
@*
Pass in the string containing the price including vat this may have the currency
indicator which shall be removed for the calculation removing the vat.
@Html.Partial("_ProductPriceWithVat", [THE_PRICE_STRING])
*@
@model string
@using System.Globalization
@using System.Text.RegularExpressions
@if (!String.IsNullOrEmpty(@Model))
{
Regex ex = new Regex(@"\p{Sc}");
string currencySymbol = ex.Match(@Model).Value;
ex = new Regex(@"\d.*");
decimal priceIncVat = Convert.ToDecimal(ex.Match(@Model).Value);
@* Assuming VAT rate of 20% in the UK. Change to your required VAT rate *@
decimal priceExcVat = (priceIncVat/((decimal) 20/100 + 1));
@* Assuming UK Culture CultureInfo("en-gb"). Change to your required culture. *@
@Html.Raw(currencySymbol + priceIncVat.ToString("N", new CultureInfo("en-gb"))
+ " Inc VAT<br>"
+ currencySymbol + priceExcVat.ToString("N", new CultureInfo("en-gb"))
+ " Exc VAT")
}
....\Nop.Web\Views\Product\_ProductPrice.cshtml
<span>@Model.RentalPrice</span>
<span>@Html.Partial("_ProductPriceWithVat", Model.RentalPrice)</span>
<span>@Model.OldPrice</span>
<span>@Html.Partial("_ProductPriceWithVat", Model.OldPrice)</span>
@Html.Raw(Model.Price)
@Html.Partial("_ProductPriceWithVat", Model.Price)
@Html.Raw(Model.PriceWithDiscount)
@Html.Partial("_ProductPriceWithVat", Model.PriceWithDiscount)
@Html.Raw(Model.BasePricePAngV)
@Html.Partial("_ProductPriceWithVat", Model.BasePricePAngV)
<span class="price old-price">@Model.ProductPrice.OldPrice</span>
<span class="price old-price">
@Html.Partial("~/Views/Product/_ProductPriceWithVat.cshtml",
Model.ProductPrice.OldPrice)
</span>
<span class="price actual-price">@Model.ProductPrice.Price</span>
<span class="price old-price">
@Html.Partial("~/Views/Product/_ProductPriceWithVat.cshtml",
Model.ProductPrice.Price)
</span>
public decimal PriceWithoutVatIncluded { get; set; }
public decimal PriceWithoutVatIncluded { get; set; }
else
{
decimal taxRate;
decimal oldPriceBase = _taxService.GetProductPrice(product, product.OldPrice, out taxRate);
decimal finalPriceWithoutDiscountBase = _taxService.GetProductPrice(product, _priceCalculationService.GetFinalPrice(product, _workContext.CurrentCustomer, includeDiscounts: false), out taxRate);
decimal finalPriceWithDiscountBase = _taxService.GetProductPrice(product, _priceCalculationService.GetFinalPrice(product, _workContext.CurrentCustomer, includeDiscounts: true), out taxRate);
decimal oldPrice = _currencyService.ConvertFromPrimaryStoreCurrency(oldPriceBase, _workContext.WorkingCurrency);
decimal finalPriceWithoutDiscount = _currencyService.ConvertFromPrimaryStoreCurrency(finalPriceWithoutDiscountBase, _workContext.WorkingCurrency);
decimal finalPriceWithDiscount = _currencyService.ConvertFromPrimaryStoreCurrency(finalPriceWithDiscountBase, _workContext.WorkingCurrency);
if (finalPriceWithoutDiscountBase != oldPriceBase && oldPriceBase > decimal.Zero)
model.ProductPrice.OldPrice = _priceFormatter.FormatPrice(oldPrice);
model.ProductPrice.Price = _priceFormatter.FormatPrice(finalPriceWithoutDiscount);
if (finalPriceWithoutDiscountBase != finalPriceWithDiscountBase)
model.ProductPrice.PriceWithDiscount = _priceFormatter.FormatPrice(finalPriceWithDiscount);
model.ProductPrice.PriceValue = finalPriceWithDiscount;
//property for German market
//we display tax/shipping info only with "shipping enabled" for this product
//we also ensure this it's not free shipping
model.ProductPrice.DisplayTaxShippingInfo = _catalogSettings.DisplayTaxShippingInfoProductDetailsPage
&& product.IsShipEnabled &&
!product.IsFreeShipping;
//PAngV baseprice (used in Germany)
model.ProductPrice.BasePricePAngV = product.FormatBasePrice(finalPriceWithDiscountBase,
_localizationService, _measureService, _currencyService, _workContext, _priceFormatter);
//currency code
model.ProductPrice.CurrencyCode = _workContext.WorkingCurrency.CurrencyCode;
//rental
if (product.IsRental)
{
model.ProductPrice.IsRental = true;
var priceStr = _priceFormatter.FormatPrice(finalPriceWithDiscount);
model.ProductPrice.RentalPrice = _priceFormatter.FormatRentalProductPeriod(product, priceStr);
}
}
decimal finalPriceWithDiscountBase = _taxService.GetProductPrice(product, _priceCalculationService.GetFinalPrice(product, _workContext.CurrentCustomer, includeDiscounts: true), out taxRate);Go ahead and add this :
decimal vatCalculation = finalPriceWithoutDiscountBase * taxRate / 100;
decimal priceWithoutVatIncluded = finalPriceWithoutDiscountBase - vatCalculation;
model.ProductPrice.PriceWithoutVatIncluded = priceWithoutVatIncluded;
decimal vatCalculation = finalPriceBase * taxRate / 100;
decimal priceWithoutVatIncluded = finalPriceBase - vatCalculation;
priceModel.PriceWithoutVatIncluded = priceWithoutVatIncluded;
@*render price*@
<span @if (String.IsNullOrWhiteSpace(Model.PriceWithDiscount)) { <text> itemprop="price" class="price-value-@(Model.ProductId)" </text> }>
@Html.Raw(Model.Price)
</span>
<span>@Html.Raw(Model.PriceWithoutVatIncluded)</span>
@Model.ProductPrice.PriceWithoutVatIncluded