public ProductPriceEditorViewModel( ProductVatConfigurationPart vatPart, IShippingMethod shipping, IVatConfigurationService vatConfigurationService) : this(vatPart) { // There are two different cases here: FlexibleShippingMethodPart or the others HasDiscount = false; var rate = vatConfigurationService.GetRate(vatPart.VatConfigurationPart ?? vatConfigurationService.GetDefaultCategory()); if (shipping is FlexibleShippingMethodPart) { ShowShape = true; var flexible = shipping as FlexibleShippingMethodPart; BasePrice = flexible.DefaultPrice; BaseTaxedPrice = Math.Round(flexible.DefaultPrice * (1.0m + rate), 2); OriginalPriceId = "FlexibleShippingMethodPart_DefaultPrice"; } // NOTE: VAT configuration currently only works properly and is tested // for FlexibleShippingMethodPart. Other IShippingMethod implementations // likely don't work with it. }
public ProductPriceEditorViewModel( ProductVatConfigurationPart vatPart, ProductPart product, IProductPriceService productPriceService) : this(vatPart) { ShowShape = true; HasDiscount = true; BasePrice = product != null ? product.Price : 0.0m; DiscountPrice = product != null ? product.DiscountPrice : -1.0m; BaseTaxedPrice = product != null && productPriceService != null ? productPriceService.GetPrice(product) : 0.0m; DiscountTaxedPrice = product != null && productPriceService != null ? productPriceService.GetDiscountPrice(product) >= 0 ? productPriceService.GetDiscountPrice(product) : -1.0m : -1.0m; }
public ProductPriceEditorViewModel( ProductVatConfigurationPart vatPart) : this() { }