Developer forum
E-mail notifications
Skip VAT while total price is above 80 kr.
Har forsøgt med OrderLineTemplateExtender, ProductTemplateExtender, TotalSalesPriceDiscount uden at finde den rette løsning.
Vil sætte VATPercent på alle varer til 0.0, når prisen uden moms og gebyrer overstiger 80 kr. Jeg har lavet en ny moms gruppe, hvis løsningen er at ændre momsgruppe.
Vil gerne have nogle input.
Replies
Skal momsen slettes helt, eller ville det kunne løses med en SalesDiscountProvider?
Mvh.
Lars
Jeg vil sætte vat procent til 0% ved køb over 80 kr., men den skal sættes til 5% (default på frimærker). Se koden:
// Get rawprice
PriceRaw rawprice = new PriceRaw(orderLine.Product.Price.Price, Dynamicweb.eCommerce.Common.Application.DefaultCurrency);
// Convert to a calculated price
PriceCalculated newPrice = new PriceCalculated(rawprice);
if (args.OrderLines.Order.PriceBeforeFees.Price >= 80 && (Base.ChkString(args.OrderLines.Order.CustomerCountryCode).ToLower() == "dk")
{
newPrice.VATPercent = 0.0;
orderLine.Modified = DateTime.Now;
orderLine.UnitPrice = newPrice;
}
if (args.OrderLines.Order.PriceBeforeFees.Price < 80 && Base.ChkString(args.OrderLines.Order.CustomerCountryCode).ToLower() == "dk")
{
newPrice.VATPercent = 5.0;
orderLine.Modified = DateTime.Now;
orderLine.UnitPrice = newPrice;
}
Denne koden er p.t. i en [Subscribe(Dynamicweb.Notifications.eCommerce.Cart.BeforeRender)]
Jeg tror min kode er i orden, men får bare ikke opdateret prisen, hvis du forstår.
SalesDiscountProvider er ikke helt det jeg søger, fordi det er ikke en rabat kunden skal have.
Nu har forsøgt at sætte momsen til 0% på varen, men mit problem kunne også løses ved at sætte order.VATProcent til 0 (beløb eller procent).
Hvordan tvinger man egentlig DW at opdatere ordrelinjer ? fordi jeg forstår ikke hvorfor min pris ikke ændres. Kan godt ændre navnet f.eks. suffix.
You can set a sales discount to 5% on sales above kr 80 - see http://www.screencast.com/users/DavidMatheson/folders/Jing/media/93245118-8b70-4e30-9921-242a7803851b
BR.
Lars
Hi Matheson
Your idea is fine. But when i use the SalesDiscountProvider it adds an additional orderline to the order object.
When the system adds a new orderline, this orderline also inherits vatprocent, this complicates it even more, when using SalesDiscountProvider.
I want equivalent function without the the orderline type of discount or without an orderline at all.
I will try our solution Lars. Looks promising.
I ended with this code in the OrderTemplateExtender: (this code is not functional !!)
if (base.Order.PriceBeforeFees.Price >= 80 && Base.ChkString(base.Order.CustomerCountryCode).ToLower() == "dk")
{
foreach (OrderLine ol in base.Order.OrderLines)
{
ol.ProductName += " (new price)";
ol.Price.VATPercent = 0.0;
ol.Save(ol.ID);
}
base.Order.Price.VATPercent = 0.0;
base.Order.Save(base.Order.ID);
}
Product name is being altered, but the price is not. Is there something im missing ?
if (base.Order.PriceBeforeFees.Price >= 80 && Base.ChkString(base.Order.CustomerCountryCode).ToLower() == "dk")
{
base.Order.Price.VAT = 0.0;
base.Order.Price.PriceWithVAT = base.Order.Price.PriceWithoutVAT;
base.Order.Save(base.Order.ID);
}
I did not see this solution coming.
A much better solution would be to set product VAT to zero instead of overwriting the order object.
You must be logged in to post in the forum